This commit is contained in:
@@ -253,73 +253,61 @@ namespace AyaNova.Biz
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// GET ANCESTOR
|
||||
//GET ANCESTOR TYPE AND ID
|
||||
//
|
||||
internal static async Task<AyaTypeId> GetAncestor(AyaType ayaType, long id, AyContext ct)
|
||||
{
|
||||
long woid = 0;
|
||||
long woitemid = 0;
|
||||
switch (ayaType)
|
||||
{
|
||||
case AyaType.WorkOrderItem:
|
||||
woid = await ct.WorkOrderItem.Where(z => z.Id == id).Select(z => z.WorkOrderId).SingleAsync();
|
||||
woitemid = id;
|
||||
break;
|
||||
case AyaType.WorkOrderItemExpense:
|
||||
woid = await ct.WorkOrderItem.Include(z => z.Expenses.Where(ex => ex.Id == id)).Select(z => z.WorkOrderId).SingleAsync();
|
||||
woitemid = await ct.WorkOrderItemExpense.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemLabor:
|
||||
woitemid = await ct.WorkOrderItemLabor.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemLoan:
|
||||
woitemid = await ct.WorkOrderItemLoan.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemPart:
|
||||
woitemid = await ct.WorkOrderItemPart.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemPartRequest:
|
||||
woitemid = await ct.WorkOrderItemPartRequest.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemScheduledUser:
|
||||
woitemid = await ct.WorkOrderItemScheduledUser.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemTask:
|
||||
woitemid = await ct.WorkOrderItemTask.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
case AyaType.WorkOrderItemTravel:
|
||||
|
||||
woitemid = await ct.WorkOrderItemTravel.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
break;
|
||||
default:
|
||||
throw new System.NotSupportedException($"WorkOrderBiz::GetAncestor -> AyaType {ayaType.ToString()} is not supported");
|
||||
|
||||
}
|
||||
|
||||
// //https://docs.microsoft.com/en-us/ef/core/querying/related-data
|
||||
// //docs say this will not query twice but will recognize the duplicate woitem bit which is required for multiple grandchild collections
|
||||
// var ret =
|
||||
// await ct.WorkOrder
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Expenses)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Labors)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Loans)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Parts)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.PartRequests)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.ScheduledUsers)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Tasks)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Travels)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Units)
|
||||
// .SingleOrDefaultAsync(m => m.Id == id);
|
||||
|
||||
|
||||
return new AyaTypeId(AyaType.WorkOrder, woid);
|
||||
return new AyaTypeId(AyaType.WorkOrder, await ct.WorkOrderItem.Where(z => z.Id == woitemid).Select(z => z.WorkOrderId).SingleOrDefaultAsync());
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//SEARCH
|
||||
//
|
||||
private async Task WorkOrderSearchIndexAsync(WorkOrder obj, bool isNew)
|
||||
{
|
||||
//SEARCH INDEXING
|
||||
var SearchParams = new Search.SearchIndexProcessObjectParameters(UserTranslationId, obj.Id, BizType);
|
||||
SearchParams.AddText(obj.Notes).AddText(obj.Serial).AddText(obj.Wiki).AddText(obj.Tags).AddCustomFields(obj.CustomFields);
|
||||
|
||||
if (isNew)
|
||||
await Search.ProcessNewObjectKeywordsAsync(SearchParams);
|
||||
else
|
||||
await Search.ProcessUpdatedObjectKeywordsAsync(SearchParams);
|
||||
}
|
||||
|
||||
//TODO: This is going to have to handle descendents or there needs to be a change to include a subitem or something in case of workorder
|
||||
public async Task<Search.SearchIndexProcessObjectParameters> GetSearchResultSummary(long id)
|
||||
{
|
||||
var obj = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == id);
|
||||
|
||||
Reference in New Issue
Block a user