This commit is contained in:
2020-12-09 18:08:56 +00:00
parent 3470d76b8b
commit c168d65865
5 changed files with 86 additions and 9 deletions

View File

@@ -424,7 +424,10 @@ namespace AyaNova.Biz
{ {
SaveIt = false; SaveIt = false;
ClearErrors(); ClearErrors();
var o = await GetAsync(id, false); Customer o = null;
//save a fetch if it's a delete
if (job.SubType != JobSubType.Delete)
o = await GetAsync(id, false);
switch (job.SubType) switch (job.SubType)
{ {
case JobSubType.TagAddAny: case JobSubType.TagAddAny:
@@ -435,6 +438,12 @@ namespace AyaNova.Biz
case JobSubType.TagReplace: case JobSubType.TagReplace:
SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType);
break; break;
case JobSubType.Delete:
if (!await DeleteAsync(id))
{
await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}");
}
break;
default: default:
throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}");
} }

View File

@@ -384,7 +384,10 @@ namespace AyaNova.Biz
{ {
SaveIt = false; SaveIt = false;
ClearErrors(); ClearErrors();
var o = await GetAsync(id, false); HeadOffice o = null;
//save a fetch if it's a delete
if (job.SubType != JobSubType.Delete)
o = await GetAsync(id, false);
switch (job.SubType) switch (job.SubType)
{ {
case JobSubType.TagAddAny: case JobSubType.TagAddAny:
@@ -395,6 +398,12 @@ namespace AyaNova.Biz
case JobSubType.TagReplace: case JobSubType.TagReplace:
SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType);
break; break;
case JobSubType.Delete:
if (!await DeleteAsync(id))
{
await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}");
}
break;
default: default:
throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}");
} }

View File

@@ -850,8 +850,10 @@ namespace AyaNova.Biz
ClearErrors(); ClearErrors();
//a little different than normal here because the built in getasync doesn't return //a little different than normal here because the built in getasync doesn't return
//a full User object normally //a full User object normally
// var o = await GetAsync(id, false); User o = null;
var o = await ct.User.SingleOrDefaultAsync(z => z.Id == id); //save a fetch if it's a delete
if (job.SubType != JobSubType.Delete)
o = await ct.User.SingleOrDefaultAsync(z => z.Id == id);
switch (job.SubType) switch (job.SubType)
{ {
case JobSubType.TagAddAny: case JobSubType.TagAddAny:
@@ -862,6 +864,12 @@ namespace AyaNova.Biz
case JobSubType.TagReplace: case JobSubType.TagReplace:
SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType);
break; break;
case JobSubType.Delete:
if (!await DeleteAsync(id))
{
await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}");
}
break;
default: default:
throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}");
} }

View File

@@ -152,7 +152,8 @@ namespace AyaNova.Biz
try try
{ {
Vendor dbObject = await ct.Vendor.SingleOrDefaultAsync(z => z.Id == id); Vendor dbObject = await ct.Vendor.SingleOrDefaultAsync(z => z.Id == id);
if (dbObject == null){ if (dbObject == null)
{
AddError(ApiErrorCode.NOT_FOUND); AddError(ApiErrorCode.NOT_FOUND);
return false; return false;
} }
@@ -358,7 +359,10 @@ namespace AyaNova.Biz
{ {
SaveIt = false; SaveIt = false;
ClearErrors(); ClearErrors();
var o = await GetAsync(id, false); Vendor o = null;
//save a fetch if it's a delete
if (job.SubType != JobSubType.Delete)
o = await GetAsync(id, false);
switch (job.SubType) switch (job.SubType)
{ {
case JobSubType.TagAddAny: case JobSubType.TagAddAny:
@@ -369,6 +373,12 @@ namespace AyaNova.Biz
case JobSubType.TagReplace: case JobSubType.TagReplace:
SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType);
break; break;
case JobSubType.Delete:
if (!await DeleteAsync(id))
{
await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}");
}
break;
default: default:
throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}");
} }

View File

@@ -199,7 +199,8 @@ namespace AyaNova.Biz
try try
{ {
WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(z => z.Id == id); WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(z => z.Id == id);
if (dbObject == null){ if (dbObject == null)
{
AddError(ApiErrorCode.NOT_FOUND); AddError(ApiErrorCode.NOT_FOUND);
return false; return false;
} }
@@ -227,7 +228,7 @@ namespace AyaNova.Biz
if (dbObject.Wiki == "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT") if (dbObject.Wiki == "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT")
{ {
// await transaction.RollbackAsync(); // await transaction.RollbackAsync();
return false;//thus not committing transaction return false;//thus not committing transaction
} }
#endif #endif
@@ -2461,6 +2462,37 @@ namespace AyaNova.Biz
throw new System.ArgumentOutOfRangeException($"WorkOrder::PutWorkOrderGraphItem -> Invalid ayaType{ayaType}"); throw new System.ArgumentOutOfRangeException($"WorkOrder::PutWorkOrderGraphItem -> Invalid ayaType{ayaType}");
} }
} }
public async Task<bool> DeleteWorkOrderGraphItem(AyaType ayaType, long id)
{
switch (ayaType)
{
case AyaType.WorkOrder:
return await WorkOrderDeleteAsync(id);
case AyaType.WorkOrderItem:
return await ItemDeleteAsync(id);
case AyaType.WorkOrderItemExpense:
return await ExpenseDeleteAsync(id);
case AyaType.WorkOrderItemLabor:
return await LaborDeleteAsync(id);
case AyaType.WorkOrderItemLoan:
return await LoanDeleteAsync(id);
case AyaType.WorkOrderItemPart:
return await PartDeleteAsync(id);
case AyaType.WorkOrderItemPartRequest:
return await PartRequestDeleteAsync(id);
case AyaType.WorkOrderItemScheduledUser:
return await ScheduledUserDeleteAsync(id);
case AyaType.WorkOrderItemTask:
return await TaskDeleteAsync(id);
case AyaType.WorkOrderItemTravel:
return await TravelDeleteAsync(id);
case AyaType.WorkOrderItemUnit:
return await UnitDeleteAsync(id);
default:
throw new System.ArgumentOutOfRangeException($"WorkOrder::GetWorkOrderGraphItem -> Invalid ayaType{ayaType}");
}
}
#endregion utility #endregion utility
@@ -2500,7 +2532,10 @@ namespace AyaNova.Biz
{ {
SaveIt = false; SaveIt = false;
ClearErrors(); ClearErrors();
ICoreBizObjectModel o = await GetWorkOrderGraphItem(job.ObjectType, id); ICoreBizObjectModel o = null;
//save a fetch if it's a delete
if (job.SubType != JobSubType.Delete)
o = await GetWorkOrderGraphItem(job.ObjectType, id);
switch (job.SubType) switch (job.SubType)
{ {
case JobSubType.TagAddAny: case JobSubType.TagAddAny:
@@ -2511,6 +2546,12 @@ namespace AyaNova.Biz
case JobSubType.TagReplace: case JobSubType.TagReplace:
SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType);
break; break;
case JobSubType.Delete:
if (!await DeleteWorkOrderGraphItem(job.ObjectType, id))
{
await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}");
}
break;
default: default:
throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}");
} }