This commit is contained in:
2021-12-30 01:01:59 +00:00
parent 1645b7d667
commit f8d47551ee
18 changed files with 320 additions and 128 deletions

View File

@@ -193,7 +193,6 @@ namespace AyaNova.Biz
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (CustomerNote w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -219,7 +218,6 @@ namespace AyaNova.Biz
o.UserViz = vc.Get("user", o.UserId);
}
private VizCache vc = new VizCache();

View File

@@ -318,7 +318,6 @@ namespace AyaNova.Biz
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object

View File

@@ -6,7 +6,6 @@ using AyaNova.Util;
using AyaNova.Api.ControllerHelpers;
using AyaNova.Models;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace AyaNova.Biz
{
@@ -48,18 +47,14 @@ namespace AyaNova.Biz
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.PartInventoryId select z;
//cache frequent viz data
var AyaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
UserTranslationId,
CurrentUserRoles);
batchResults = null;
foreach (ViewPartInventoryList w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
var jo = JObject.FromObject(w);
ReportData.Add(jo);
}
orderedList = null;
}
return ReportData;
}

View File

@@ -47,13 +47,7 @@ namespace AyaNova.Biz
var batchResults = await ct.ViewPartInventoryRequestList.AsNoTracking().Where(z => batch.Contains(z.RequestId)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.RequestId select z;
//cache frequent viz data
var AyaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
UserTranslationId,
CurrentUserRoles);
batchResults=null;
foreach (ViewPartInventoryRequestList w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -61,7 +55,7 @@ namespace AyaNova.Biz
var jo = JObject.FromObject(w);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -297,6 +297,7 @@ namespace AyaNova.Biz
var batchResults = await ct.PartWarehouse.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (PartWarehouse w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -305,6 +306,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -286,6 +286,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Project.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (Project w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -295,16 +296,23 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(Project o)
{
if (o.ProjectOverseerId != null)
o.ProjectOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.ProjectOverseerId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("user", o.ProjectOverseerId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.ProjectOverseerId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.ProjectOverseerId);
o.ProjectOverseerViz = vc.Get("user", o.ProjectOverseerId);
}
}

View File

@@ -70,7 +70,7 @@ namespace AyaNova.Biz
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null);
await HandlePotentialNotificationEvent(AyaEvent.Created, newObject);
if (populateDisplayFields)
await SetDisplayFields(newObject, false);
await PopulateVizFields(newObject, false);
return newObject;
}
}
@@ -84,7 +84,7 @@ namespace AyaNova.Biz
{
var ret = await ct.PurchaseOrder.Include(z => z.Items).AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
if (populateDisplayFields)
await SetDisplayFields(ret, false);
await PopulateVizFields(ret, false);
if (logTheGetEvent && ret != null)
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
@@ -94,7 +94,7 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//DISPLAY FIELDS
//
private async Task SetDisplayFields(PurchaseOrder po, bool forReporting)
private async Task PopulateVizFields(PurchaseOrder po, bool forReporting)
{
//NOTE: This expects to run AFTER bizActions have been performed
if (po == null) return;
@@ -112,60 +112,112 @@ namespace AyaNova.Biz
if (po.DropShipToCustomerId != null)
{
var ds = await ct.Customer.AsNoTracking().Where(x => x.Id == po.DropShipToCustomerId).FirstOrDefaultAsync();
var pid = po.DropShipToCustomerId;
if (!vc.Has("custname", po.DropShipToCustomerId))
{
var ds = await ct.Customer.AsNoTracking().Where(x => x.Id == pid).FirstOrDefaultAsync();
vc.Add(ds.Name, "custname", pid);
vc.Add(ds.Address, "custaddr", pid);
vc.Add(ds.City, "custcity", pid);
vc.Add(ds.Region, "custregion", pid);
vc.Add(ds.Country, "custcountry", pid);
vc.Add(ds.Latitude.ToString(), "custlat", pid);
vc.Add(ds.Longitude.ToString(), "custlong", pid);
vc.Add(ds.PostAddress, "custpostaddr", pid);
vc.Add(ds.PostCity, "custpostcity", pid);
vc.Add(ds.PostRegion, "custpostregion", pid);
vc.Add(ds.PostCountry, "custpostcountry", pid);
vc.Add(ds.PostCode, "custpostcode", pid);
vc.Add(ds.Phone1, "custp1", pid);
vc.Add(ds.Phone2, "custp2", pid);
vc.Add(ds.Phone3, "custp3", pid);
vc.Add(ds.Phone4, "custp4", pid);
vc.Add(ds.Phone5, "custp5", pid);
vc.Add(ds.EmailAddress, "custemail", pid);
}
po.DropShipToCustomerViz = ds.Name;
po.DropShipToCustomerViz = vc.Get("custname", pid);
if (forReporting)
{
po.DropShipToCustomerAddressViz = ds.Address;
po.DropShipToCustomerCityViz = ds.City;
po.DropShipToCustomerRegionViz = ds.Region;
po.DropShipToCustomerCountryViz = ds.Country;
po.DropShipToCustomerLatitudeViz = ds.Latitude;
po.DropShipToCustomerLongitudeViz = ds.Longitude;
po.DropShipToCustomerPostAddressViz = ds.PostAddress;
po.DropShipToCustomerPostCityViz = ds.PostCity;
po.DropShipToCustomerPostRegionViz = ds.PostRegion;
po.DropShipToCustomerPostCountryViz = ds.PostCountry;
po.DropShipToCustomerPostCodeViz = ds.PostCode;
po.DropShipToCustomerPhone1Viz = ds.Phone1;
po.DropShipToCustomerPhone2Viz = ds.Phone2;
po.DropShipToCustomerPhone3Viz = ds.Phone3;
po.DropShipToCustomerPhone4Viz = ds.Phone4;
po.DropShipToCustomerPhone5Viz = ds.Phone5;
po.DropShipToCustomerEmailAddressViz = ds.EmailAddress;
po.DropShipToCustomerAddressViz = vc.Get("custaddr", pid);
po.DropShipToCustomerCityViz = vc.Get("custcity", pid);
po.DropShipToCustomerRegionViz = vc.Get("custregion", pid);
po.DropShipToCustomerCountryViz = vc.Get("custcountry", pid);
po.DropShipToCustomerLatitudeViz = vc.GetAsDecimal("custlat", pid);
po.DropShipToCustomerLongitudeViz = vc.GetAsDecimal("custlong", pid);
po.DropShipToCustomerPostAddressViz = vc.Get("custpostaddr", pid);
po.DropShipToCustomerPostCityViz = vc.Get("custpostcity", pid);
po.DropShipToCustomerPostRegionViz = vc.Get("custpostregion", pid);
po.DropShipToCustomerPostCountryViz = vc.Get("custpostcountry", pid);
po.DropShipToCustomerPostCodeViz = vc.Get("custpostcode", pid);
po.DropShipToCustomerPhone1Viz = vc.Get("custp1", pid);
po.DropShipToCustomerPhone2Viz = vc.Get("custp2", pid);
po.DropShipToCustomerPhone3Viz = vc.Get("custp3", pid);
po.DropShipToCustomerPhone4Viz = vc.Get("custp4", pid);
po.DropShipToCustomerPhone5Viz = vc.Get("custp5", pid);
po.DropShipToCustomerEmailAddressViz = vc.Get("custemail", pid);
}
}
var vnd = await ct.Vendor.AsNoTracking().Where(x => x.Id == po.VendorId).FirstOrDefaultAsync();
po.VendorViz = vnd.Name;
po.VendorAlertNotesViz = vnd.AlertNotes;
var vid = po.VendorId;
if (!vc.Has("vndname", vid))
{
var vnd = await ct.Vendor.AsNoTracking().Where(x => x.Id == vid).FirstOrDefaultAsync();
vc.Add(vnd.Name, "vndname", vid);
vc.Add(vnd.AlertNotes, "vndalert", vid);
if (forReporting)
{
po.VendorAddressViz = vnd.Address;
po.VendorCityViz = vnd.City;
po.VendorRegionViz = vnd.Region;
po.VendorCountryViz = vnd.Country;
po.VendorLatitudeViz = vnd.Latitude;
po.VendorLongitudeViz = vnd.Longitude;
po.VendorPostAddressViz = vnd.PostAddress;
po.VendorPostCityViz = vnd.PostCity;
po.VendorPostRegionViz = vnd.PostRegion;
po.VendorPostCountryViz = vnd.PostCountry;
po.VendorPostCodeViz = vnd.PostCode;
po.VendorPhone1Viz = vnd.Phone1;
po.VendorPhone2Viz = vnd.Phone2;
po.VendorPhone3Viz = vnd.Phone3;
po.VendorPhone4Viz = vnd.Phone4;
po.VendorPhone5Viz = vnd.Phone5;
po.VendorEmailAddressViz = vnd.EmailAddress;
po.VendorContactViz = vnd.Contact;
po.VendorContactNotesViz = vnd.ContactNotes;
po.VendorAccountNumberViz = vnd.AccountNumber;
var PoStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
vc.Add(vnd.Address, "vndaddr", vid);
vc.Add(vnd.City, "vndcity", vid);
vc.Add(vnd.Region, "vndregion", vid);
vc.Add(vnd.Country, "vndcountry", vid);
vc.Add(vnd.Latitude.ToString(), "vndlat", vid);
vc.Add(vnd.Longitude.ToString(), "vndlong", vid);
vc.Add(vnd.PostAddress, "vndpostaddr", vid);
vc.Add(vnd.PostCity, "vndpostcity", vid);
vc.Add(vnd.PostRegion, "vndpostregion", vid);
vc.Add(vnd.PostCountry, "vndpostcountry", vid);
vc.Add(vnd.PostCode, "vndpostcode", vid);
vc.Add(vnd.Phone1, "vndp1", vid);
vc.Add(vnd.Phone2, "vndp2", vid);
vc.Add(vnd.Phone3, "vndp3", vid);
vc.Add(vnd.Phone4, "vndp4", vid);
vc.Add(vnd.Phone5, "vndp5", vid);
vc.Add(vnd.EmailAddress, "vndemail", vid);
vc.Add(vnd.Contact, "vndcontact", vid);
vc.Add(vnd.ContactNotes, "vndcontactnotes", vid);
vc.Add(vnd.AccountNumber, "vndacct", vid);
}
}
po.VendorViz = vc.Get("vndname", vid);
po.VendorAlertNotesViz = vc.Get("vndalert", vid);
if (forReporting)
{
po.VendorAddressViz = vc.Get("vndaddr", vid);
po.VendorCityViz = vc.Get("vndcity", vid);
po.VendorRegionViz = vc.Get("vndregion", vid);
po.VendorCountryViz = vc.Get("vndcountry", vid);
po.VendorLatitudeViz = vc.GetAsDecimal("vndlat", vid);
po.VendorLongitudeViz = vc.GetAsDecimal("vndlong", vid);
po.VendorPostAddressViz = vc.Get("vndpostaddr", vid);
po.VendorPostCityViz = vc.Get("vndpostcity", vid);
po.VendorPostRegionViz = vc.Get("vndpostregion", vid);
po.VendorPostCountryViz = vc.Get("vndpostcountry", vid);
po.VendorPostCodeViz = vc.Get("vndpostcode", vid);
po.VendorPhone1Viz = vc.Get("vndp1", vid);
po.VendorPhone2Viz = vc.Get("vndp2", vid);
po.VendorPhone3Viz = vc.Get("vndp3", vid);
po.VendorPhone4Viz = vc.Get("vndp4", vid);
po.VendorPhone5Viz = vc.Get("vndp5", vid);
po.VendorEmailAddressViz = vc.Get("vndemail", vid);
po.VendorContactViz = vc.Get("vndcontact", vid);
po.VendorContactNotesViz = vc.Get("vndcontactnotes", vid);
po.VendorAccountNumberViz = vc.Get("vndacct", vid);
if (PoStatusEnumList == null)
PoStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(PurchaseOrderStatus).ToString()),
UserTranslationId,
CurrentUserRoles);
@@ -176,33 +228,73 @@ namespace AyaNova.Biz
if (po.ProjectId != null)
po.ProjectViz = await ct.Project.AsNoTracking().Where(x => x.Id == po.ProjectId).Select(x => x.Name).FirstOrDefaultAsync();
if (po.ProjectId != null)
{
if (!vc.Has("projname", po.ProjectId))
vc.Add(await ct.Project.AsNoTracking().Where(x => x.Id == po.ProjectId).Select(x => x.Name).FirstOrDefaultAsync(), "projname", po.ProjectId);
po.ProjectViz = vc.Get("projname", po.ProjectId);
}
foreach (PurchaseOrderItem item in po.Items)
{
if (!vc.Has("partname", item.PartId))
{
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => new { x.Description, x.Name, x.UPC, x.UnitOfMeasure, x.ManufacturerNumber }).FirstOrDefaultAsync();
vc.Add(partInfo.Name, "partname", item.PartId);
vc.Add(partInfo.Description, "partdescription", item.PartId);
vc.Add(partInfo.UPC, "partupc", item.PartId);
vc.Add(partInfo.UnitOfMeasure, "partuofm", item.PartId);
vc.Add(partInfo.ManufacturerNumber, "partmanunum", item.PartId);
}
item.PartDescriptionViz = vc.Get("partdescription", item.PartId);
item.PartNameViz = vc.Get("partname", item.PartId);
item.UpcViz = vc.Get("partupc", item.PartId);
item.PartUnitOfMeasureViz = vc.Get("partuofm", item.PartId);
item.PartManufacturerNumberViz = vc.Get("partmanunum", item.PartId);
if (item.PartWarehouseId != 0)
{
if (!vc.Has("partwarehouse", item.PartWarehouseId))
vc.Add(await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(), "partwarehouse", item.PartWarehouseId);
item.WarehouseViz = vc.Get("partwarehouse", item.PartWarehouseId);
}
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => new { PartDescriptionViz = x.Description, partNameViz = x.Name, partUPCViz=x.UPC, partunitofmeasureviz = x.UnitOfMeasure, partmanufacturernumber = x.ManufacturerNumber }).FirstOrDefaultAsync();
item.PartDescriptionViz = partInfo.PartDescriptionViz;
item.PartNameViz = partInfo.partNameViz;
item.UpcViz=partInfo.partUPCViz;
item.PartUnitOfMeasureViz = partInfo.partunitofmeasureviz;
item.PartManufacturerNumberViz = partInfo.partmanufacturernumber;
item.WarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync();
if (item.WorkOrderItemPartRequestId != null)
{
po.HasPartRequest = true;
item.WorkOrderItemPartRequestViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkOrderItemPartRequestId, ct)).ToString();
if (!vc.Has("woserial", item.WorkOrderItemPartRequestId))
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkOrderItemPartRequestId, ct)).ToString(), "woserial", item.WorkOrderItemPartRequestId);
item.WorkOrderItemPartRequestViz = vc.Get("woserial", item.WorkOrderItemPartRequestId);
if (item.PartRequestedById != null)
item.PartRequestedByViz = await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("user", item.PartRequestedById))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync(), "user", item.PartRequestedById);
item.PartRequestedByViz = vc.Get("user", item.PartRequestedById);
}
}
TaxCode tax = null;
if (item.PurchaseTaxCodeId != null)
{
tax = await ct.TaxCode.AsNoTracking().Where(x => x.Id == item.PurchaseTaxCodeId).FirstOrDefaultAsync();
if (!oc.Has("tax", item.PurchaseTaxCodeId))
{
tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == item.PurchaseTaxCodeId);
oc.Add(tax, "tax", item.PurchaseTaxCodeId);
}
tax = (TaxCode)oc.Get("tax", item.PurchaseTaxCodeId);
item.PurchaseTaxCodeViz = tax.Name;
po.HasTaxes = true;
}
if (!string.IsNullOrWhiteSpace(item.VendorPartNumber))
po.HasVendorNumber = true;
@@ -237,6 +329,9 @@ namespace AyaNova.Biz
}
}
}
List<NameIdItem> PoStatusEnumList = null;
private VizCache vc = new VizCache();
private ObjectCache oc = new ObjectCache();
////////////////////////////////////////////////////////////////////////////////////////////////
@@ -289,7 +384,7 @@ namespace AyaNova.Biz
await SearchIndexAsync(putObject, false);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
await HandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
await SetDisplayFields(putObject, false);
await PopulateVizFields(putObject, false);
return putObject;
}
}
@@ -790,16 +885,20 @@ namespace AyaNova.Biz
var batchResults = await ct.PurchaseOrder.Include(x => x.Items).AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (PurchaseOrder w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
await SetDisplayFields(w, true);
await PopulateVizFields(w, true);
var jo = JObject.FromObject(w);
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
oc.Clear();
return ReportData;
}

View File

@@ -289,6 +289,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Reminder.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (Reminder w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -298,14 +299,19 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(Reminder o)
{
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync();
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);
}
////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -347,6 +347,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Review.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (Review w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -356,21 +357,34 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
public async Task PopulateVizFields(Review o)
{
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync();
o.AssignedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.AssignedByUserId).Select(x => x.Name).FirstOrDefaultAsync();
o.ReviewObjectViz = BizObjectNameFetcherDirect.Name(o.AType, o.ObjectId, UserTranslationId, ct);
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);
if (!vc.Has("user", o.AssignedByUserId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.AssignedByUserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.AssignedByUserId);
o.AssignedByUserViz = vc.Get("user", o.AssignedByUserId);
if (!vc.Has($"b{o.AType}{o.ObjectId}"))
vc.Add(BizObjectNameFetcherDirect.Name((AyaType)o.AType, (long)o.ObjectId, UserTranslationId, ct), $"b{o.AType}{o.ObjectId}");
o.ReviewObjectViz = vc.Get($"b{o.AType}{o.ObjectId}");
if (o.ReviewObjectViz.StartsWith("LT:"))
{
o.ReviewObjectViz = await Translate(o.ReviewObjectViz);
if (!vc.Has(o.ReviewObjectViz))
vc.Add(await Translate(o.ReviewObjectViz), o.ReviewObjectViz);
o.ReviewObjectViz = vc.Get(o.ReviewObjectViz);
}
}

View File

@@ -314,6 +314,7 @@ namespace AyaNova.Biz
var batchResults = await ct.ServiceRate.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (ServiceRate w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -322,6 +323,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -298,6 +298,7 @@ namespace AyaNova.Biz
var batchResults = await ct.TaskGroup.AsNoTracking().Include(z => z.Items).Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (TaskGroup w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -306,6 +307,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -343,6 +343,7 @@ namespace AyaNova.Biz
var batchResults = await ct.TaxCode.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (TaxCode w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -351,6 +352,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -310,6 +310,7 @@ namespace AyaNova.Biz
var batchResults = await ct.TravelRate.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (TravelRate w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -318,6 +319,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}

View File

@@ -305,6 +305,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Unit.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (Unit w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -314,28 +315,56 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(Unit o)
{
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
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.UnitModelId != null)
o.UnitModelNameViz = await ct.UnitModel.AsNoTracking().Where(x => x.Id == o.UnitModelId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("unitmodel", o.UnitModelId))
vc.Add(await ct.UnitModel.AsNoTracking().Where(x => x.Id == o.UnitModelId).Select(x => x.Name).FirstOrDefaultAsync(), "unitmodel", o.UnitModelId);
o.UnitModelNameViz = vc.Get("unitmodel", o.UnitModelId);
}
if (o.ParentUnitId != null)
o.ParentUnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.ParentUnitId).Select(x => x.Serial).FirstOrDefaultAsync();
{
if (!vc.Has("unitserial", o.ParentUnitId))
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.ParentUnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.ParentUnitId);
o.ParentUnitViz = vc.Get("unitserial", o.ParentUnitId);
}
if (o.ReplacedByUnitId != null)
o.ReplacedByUnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.ReplacedByUnitId).Select(x => x.Serial).FirstOrDefaultAsync();
{
if (!vc.Has("unitserial", o.ReplacedByUnitId))
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.ReplacedByUnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.ReplacedByUnitId);
o.ReplacedByUnitViz = vc.Get("unitserial", o.ReplacedByUnitId);
}
if (o.PurchasedFromVendorId != null)
o.PurchasedFromVendorViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.PurchasedFromVendorId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("vendorname", o.PurchasedFromVendorId))
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.PurchasedFromVendorId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.PurchasedFromVendorId);
o.PurchasedFromVendorViz = vc.Get("vendorname", o.PurchasedFromVendorId);
}
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);
}
if (o.Metered)
{

View File

@@ -154,6 +154,7 @@ namespace AyaNova.Biz
var batchResults = await ct.UnitMeterReading.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults = null;
foreach (UnitMeterReading w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -161,17 +162,27 @@ namespace AyaNova.Biz
var jo = JObject.FromObject(w);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(UnitMeterReading o)
{
o.UnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).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 (o.WorkOrderItemUnitId != null)
o.WorkOrderViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemUnit, (long)o.WorkOrderItemUnitId, ct)).ToString();
{
if (!vc.Has("woserial", o.WorkOrderItemUnitId))
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemUnit, (long)o.WorkOrderItemUnitId, ct)).ToString(), "woserial", o.WorkOrderItemUnitId);
o.WorkOrderViz = vc.Get("woserial", o.WorkOrderItemUnitId);
}
}

View File

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

View File

@@ -1035,14 +1035,9 @@ namespace AyaNova.Biz
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
//cache frequent viz data
//usertypes
var UserTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(UserType).ToString()),
UserTranslationId,
CurrentUserRoles);
//foreach (User w in orderedList)
batchResults = null;
foreach (var w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -1056,24 +1051,48 @@ namespace AyaNova.Biz
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(User o, List<NameIdItem> userTypesEnumList)
{
if (userTypesEnumList == null)
userTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(UserType).ToString()),
UserTranslationId,
CurrentUserRoles);
if (o.CustomerId != null)
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
{
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.HeadOfficeId != null)
o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("headoffice", o.HeadOfficeId))
{
vc.Add(await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync(), "headoffice", o.HeadOfficeId);
}
o.HeadOfficeViz = vc.Get("headoffice", o.HeadOfficeId);
}
if (o.VendorId != null)
o.VendorViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("vendorname", o.VendorId))
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.VendorId);
o.VendorViz = vc.Get("vendorname", o.VendorId);
}
o.UserTypeViz = userTypesEnumList.Where(x => x.Id == (long)o.UserType).Select(x => x.Name).First();
}
List<NameIdItem> UserTypesEnumList = null;
////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT

View File

@@ -327,6 +327,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Vendor.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
//order the results back into original
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
batchResults=null;
foreach (Vendor w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -335,6 +336,7 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList=null;
}
return ReportData;
}