This commit is contained in:
2021-12-29 22:25:24 +00:00
parent 5255145cd0
commit e3a0404022
4 changed files with 70 additions and 29 deletions

View File

@@ -547,8 +547,6 @@ MULTIPLE discount / markup ITEMS
foreach (var i in o.ContractServiceRateOverrideItems) foreach (var i in o.ContractServiceRateOverrideItems)
i.OverrideTypeViz = contractOverrideTypeEnumList.Where(x => x.Id == (long)i.OverrideType).Select(x => x.Name).First(); i.OverrideTypeViz = contractOverrideTypeEnumList.Where(x => x.Id == (long)i.OverrideType).Select(x => x.Name).First();
// foreach (var i in o.ServiceRateItems)
// i.ServiceRateViz = await ct.ServiceRate.AsNoTracking().Where(x => x.Id == i.ServiceRateId).Select(x => x.Name).FirstOrDefaultAsync();
foreach (var i in o.ServiceRateItems) foreach (var i in o.ServiceRateItems)
{ {
if (!vc.Has("servicerate", i.ServiceRateId)) if (!vc.Has("servicerate", i.ServiceRateId))
@@ -558,8 +556,6 @@ MULTIPLE discount / markup ITEMS
i.ServiceRateViz = vc.Get("servicerate", i.ServiceRateId); i.ServiceRateViz = vc.Get("servicerate", i.ServiceRateId);
} }
// foreach (var i in o.TravelRateItems)
// i.TravelRateViz = await ct.TravelRate.AsNoTracking().Where(x => x.Id == i.TravelRateId).Select(x => x.Name).FirstOrDefaultAsync();
foreach (var i in o.TravelRateItems) foreach (var i in o.TravelRateItems)
{ {

View File

@@ -192,6 +192,8 @@ namespace AyaNova.Biz
var batchResults = await ct.CustomerNote.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.CustomerNote.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original //order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z; var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (CustomerNote w in orderedList) foreach (CustomerNote w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -199,16 +201,26 @@ namespace AyaNova.Biz
var jo = JObject.FromObject(w); var jo = JObject.FromObject(w);
ReportData.Add(jo); ReportData.Add(jo);
} }
orderedList = null;
} }
vc.Clear();
return ReportData; return ReportData;
} }
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(CustomerNote o) private async Task PopulateVizFields(CustomerNote o)
{ {
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(); if (!vc.Has("customer", o.CustomerId))
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(); vc.Add(await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(), "customer", o.CustomerId);
o.CustomerViz = vc.Get("customer", o.CustomerId);
if (!vc.Has("user", o.UserId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.UserId);
o.UserViz = vc.Get("user", o.UserId);
} }
//request cache for viz fields
private VizCache vc = new VizCache();
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -303,43 +303,65 @@ namespace AyaNova.Biz
//order the results back into original //order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z; var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
//cache frequent viz data batchResults = null;
//usertypes
var CustomerServiceRequestStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()),
UserTranslationId,
CurrentUserRoles);
var CustomerServiceRequestPriorityEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestPriority).ToString()),
UserTranslationId,
CurrentUserRoles);
foreach (CustomerServiceRequest w in orderedList) foreach (CustomerServiceRequest w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
await PopulateVizFields(w, CustomerServiceRequestStatusEnumList, CustomerServiceRequestPriorityEnumList); await PopulateVizFields(w);
var jo = JObject.FromObject(w); var jo = JObject.FromObject(w);
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"])) if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]); jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo); ReportData.Add(jo);
} }
orderedList = null;
} }
vc.Clear();
return ReportData; return ReportData;
} }
//request cache for viz fields
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(CustomerServiceRequest o, List<NameIdItem> customerServiceRequestStatusEnumList, List<NameIdItem> customerServiceRequestPriorityEnumList) private async Task PopulateVizFields(CustomerServiceRequest o)
{ {
if (customerServiceRequestStatusEnumList == null)
customerServiceRequestStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()),
UserTranslationId,
CurrentUserRoles);
if (customerServiceRequestPriorityEnumList == null)
customerServiceRequestPriorityEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestPriority).ToString()),
UserTranslationId,
CurrentUserRoles);
if (o.UnitId != null) if (o.UnitId != null)
o.UnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync(); {
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(); if (!vc.Has("unitserial", o.UnitId))
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.UnitId);
o.UnitViz = vc.Get("unitserial", o.UnitId);
}
if (!vc.Has("customer", o.CustomerId))
vc.Add(await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(), "customer", o.CustomerId);
o.CustomerViz = vc.Get("customer", o.CustomerId);
if (o.WorkOrderItemId != null) if (o.WorkOrderItemId != null)
o.WorkOrderSerialViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItem, (long)o.WorkOrderItemId, ct)).ToString(); {
o.RequestedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(); if (!vc.Has("woserial", o.WorkOrderItemId))
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItem, (long)o.WorkOrderItemId, ct)).ToString(), "woserial", o.WorkOrderItemId);
o.WorkOrderSerialViz = vc.Get("woserial", o.WorkOrderItemId);
}
if (!vc.Has("user", o.RequestedByUserId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.RequestedByUserId);
o.RequestedByUserViz = vc.Get("user", o.RequestedByUserId);
o.StatusViz = customerServiceRequestStatusEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First(); o.StatusViz = customerServiceRequestStatusEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First();
o.PriorityViz = customerServiceRequestPriorityEnumList.Where(x => x.Id == (long)o.Priority).Select(x => x.Name).First(); o.PriorityViz = customerServiceRequestPriorityEnumList.Where(x => x.Id == (long)o.Priority).Select(x => x.Name).First();
} }
private List<NameIdItem> customerServiceRequestStatusEnumList = null;
private List<NameIdItem> customerServiceRequestPriorityEnumList = null;
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT // IMPORT EXPORT

View File

@@ -298,6 +298,7 @@ namespace AyaNova.Biz
var batchResults = await ct.HeadOffice.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.HeadOffice.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original //order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z; var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (HeadOffice w in orderedList) foreach (HeadOffice w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -307,15 +308,25 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]); jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo); ReportData.Add(jo);
} }
orderedList = null;
} }
vc.Clear();
return ReportData; return ReportData;
} }
//request cache for viz fields
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(HeadOffice o) private async Task PopulateVizFields(HeadOffice o)
{ {
if (o.ContractId != null) if (o.ContractId != null)
o.ContractViz = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => x.Name).FirstOrDefaultAsync(); {
if (!vc.Has("contract", o.ContractId))
{
vc.Add(await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => x.Name).FirstOrDefaultAsync(), "contract", o.ContractId);
}
o.ContractViz = vc.Get("contract", o.ContractId);
}
} }