This commit is contained in:
2021-12-29 23:10:00 +00:00
parent e3a0404022
commit 1645b7d667
13 changed files with 129 additions and 56 deletions

View File

@@ -515,7 +515,7 @@ MULTIPLE discount / markup ITEMS
vc.Clear(); vc.Clear();
return ReportData; return ReportData;
} }
//request cache for viz fields
private VizCache vc = new VizCache(); private VizCache vc = new VizCache();

View File

@@ -364,7 +364,9 @@ namespace AyaNova.Biz
} }
vc.Clear(); vc.Clear();
return ReportData; return ReportData;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(Customer o) private async Task PopulateVizFields(Customer o)
@@ -412,9 +414,7 @@ namespace AyaNova.Biz
} }
} }
//request cache for viz fields
private VizCache vc = new VizCache();
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT // IMPORT EXPORT

View File

@@ -219,7 +219,7 @@ namespace AyaNova.Biz
o.UserViz = vc.Get("user", o.UserId); o.UserViz = vc.Get("user", o.UserId);
} }
//request cache for viz fields
private VizCache vc = new VizCache(); private VizCache vc = new VizCache();

View File

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

View File

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

View File

@@ -161,7 +161,7 @@ namespace AyaNova.Biz
ValidateCanDelete(dbObject); ValidateCanDelete(dbObject);
if (HasErrors) if (HasErrors)
return false; return false;
{ {
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.LoanUnit && x.ObjectId == id).Select(x => x.Id).ToListAsync(); var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.LoanUnit && x.ObjectId == id).Select(x => x.Id).ToListAsync();
if (IDList.Count() > 0) if (IDList.Count() > 0)
{ {
@@ -217,7 +217,7 @@ namespace AyaNova.Biz
.AddText(obj.Name) .AddText(obj.Name)
.AddText(obj.Wiki) .AddText(obj.Wiki)
.AddText(obj.Tags) .AddText(obj.Tags)
.AddText(obj.Serial) .AddText(obj.Serial)
.AddCustomFields(obj.CustomFields); .AddCustomFields(obj.CustomFields);
} }
@@ -285,6 +285,7 @@ namespace AyaNova.Biz
var batchResults = await ct.LoanUnit.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.LoanUnit.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 (LoanUnit w in orderedList) foreach (LoanUnit w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -294,15 +295,26 @@ 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;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(LoanUnit o) private async Task PopulateVizFields(LoanUnit o)
{ {
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(); {
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);
}
} }
@@ -440,7 +452,7 @@ namespace AyaNova.Biz
public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null)
{ {
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<LoanUnitBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<LoanUnitBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if (ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]"); log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]");
bool isNew = currentObj == null; bool isNew = currentObj == null;

View File

@@ -147,7 +147,7 @@ namespace AyaNova.Biz
ValidateCanDelete(dbObject); ValidateCanDelete(dbObject);
if (HasErrors) if (HasErrors)
return false; return false;
{ {
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Memo && x.ObjectId == id).Select(x => x.Id).ToListAsync(); var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Memo && x.ObjectId == id).Select(x => x.Id).ToListAsync();
if (IDList.Count() > 0) if (IDList.Count() > 0)
{ {
@@ -215,7 +215,7 @@ namespace AyaNova.Biz
{ {
//skip validation if seeding //skip validation if seeding
if(ServerBootConfig.SEEDING ) return; if (ServerBootConfig.SEEDING) return;
//Only can send a memo from your own account //Only can send a memo from your own account
//with bypass for import if superuser //with bypass for import if superuser
@@ -290,6 +290,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Memo.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.Memo.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 (Memo w in orderedList) foreach (Memo w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -299,18 +300,29 @@ 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;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(Memo o) private async Task PopulateVizFields(Memo o)
{ {
if (o.ToId != null) if (o.ToId != null)
o.ToViz = await ct.User.AsNoTracking().Where(x => x.Id == o.ToId).Select(x => x.Name).FirstOrDefaultAsync(); {
if (!vc.Has("user", o.ToId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.ToId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.ToId);
o.ToViz = vc.Get("user", o.ToId);
}
if (o.FromId != null) if (o.FromId != null)
o.FromViz = await ct.User.AsNoTracking().Where(x => x.Id == o.FromId).Select(x => x.Name).FirstOrDefaultAsync(); {
if (!vc.Has("user", o.FromId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.FromId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.FromId);
o.FromViz = vc.Get("user", o.FromId);
}
} }
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
@@ -448,7 +460,7 @@ namespace AyaNova.Biz
public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null)
{ {
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<MemoBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<MemoBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if (ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]"); log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]");
bool isNew = currentObj == null; bool isNew = currentObj == null;

View File

@@ -58,7 +58,7 @@ namespace AyaNova.Biz
AuthorizationRoles.BizAdmin, AuthorizationRoles.BizAdmin,
UserType.NotService);//picked not service arbitrarily, probably a non-factor UserType.NotService);//picked not service arbitrarily, probably a non-factor
} }
//request cache for viz fields
private VizCache vc = new VizCache(); private VizCache vc = new VizCache();
private ObjectCache oc = new ObjectCache(); private ObjectCache oc = new ObjectCache();

View File

@@ -113,7 +113,7 @@ namespace AyaNova.Biz
{ {
var partIdList = ret.Items.Select(z => z.PartId).ToArray(); var partIdList = ret.Items.Select(z => z.PartId).ToArray();
var PickList = PickListFactory.GetAyaPickList(AyaType.Part); var PickList = PickListFactory.GetAyaPickList(AyaType.Part);
var partNames = await PickListFetcher.GetResponseAsync(PickList, null, null, true, partIdList, null, ct, null,string.Empty); var partNames = await PickListFetcher.GetResponseAsync(PickList, null, null, true, partIdList, null, ct, null, string.Empty);
foreach (PartAssemblyItem pai in ret.Items) foreach (PartAssemblyItem pai in ret.Items)
{ {
pai.PartNameViz = partNames.Where(z => z.Id == pai.PartId).First().Name; pai.PartNameViz = partNames.Where(z => z.Id == pai.PartId).First().Name;
@@ -184,7 +184,7 @@ namespace AyaNova.Biz
ValidateCanDelete(dbObject); ValidateCanDelete(dbObject);
if (HasErrors) if (HasErrors)
return false; return false;
{ {
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.PartAssembly && x.ObjectId == id).Select(x => x.Id).ToListAsync(); var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.PartAssembly && x.ObjectId == id).Select(x => x.Id).ToListAsync();
if (IDList.Count() > 0) if (IDList.Count() > 0)
{ {
@@ -338,6 +338,7 @@ namespace AyaNova.Biz
var batchResults = await ct.PartAssembly.AsNoTracking().Include(z => z.Items).Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.PartAssembly.AsNoTracking().Include(z => z.Items).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 (PartAssembly w in orderedList) foreach (PartAssembly w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -347,15 +348,23 @@ 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;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(PartAssembly pa) private async Task PopulateVizFields(PartAssembly pa)
{ {
foreach (PartAssemblyItem o in pa.Items) foreach (PartAssemblyItem o in pa.Items)
o.PartNameViz = await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => x.Name).FirstOrDefaultAsync(); {
if (!vc.Has("part", o.PartId))
vc.Add(await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => x.Name).FirstOrDefaultAsync(), "part", o.PartId);
o.PartNameViz = vc.Get("part", o.PartId);
}
} }
@@ -492,7 +501,7 @@ namespace AyaNova.Biz
public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null) public async Task HandlePotentialNotificationEvent(AyaEvent ayaEvent, ICoreBizObjectModel proposedObj, ICoreBizObjectModel currentObj = null)
{ {
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<PartAssemblyBiz>(); ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<PartAssemblyBiz>();
if(ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return; if (ServerBootConfig.SEEDING || ServerBootConfig.MIGRATING) return;
log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]"); log.LogDebug($"HandlePotentialNotificationEvent processing: [AyaType:{this.BizType}, AyaEvent:{ayaEvent}]");
bool isNew = currentObj == null; bool isNew = currentObj == null;

View File

@@ -161,7 +161,7 @@ namespace AyaNova.Biz
await ValidateCanDeleteAsync(dbObject); await ValidateCanDeleteAsync(dbObject);
if (HasErrors) if (HasErrors)
return false; return false;
{ {
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Part && x.ObjectId == id).Select(x => x.Id).ToListAsync(); var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Part && x.ObjectId == id).Select(x => x.Id).ToListAsync();
if (IDList.Count() > 0) if (IDList.Count() > 0)
{ {
@@ -512,6 +512,7 @@ namespace AyaNova.Biz
var batchResults = await ct.Part.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync(); var batchResults = await ct.Part.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 (Part w in orderedList) foreach (Part w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -521,21 +522,37 @@ 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;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(Part o) private async Task PopulateVizFields(Part o)
{ {
if (o.WholeSalerId != null) if (o.WholeSalerId != null)
o.WholeSalerViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.WholeSalerId).Select(x => x.Name).FirstOrDefaultAsync(); {
if (o.ManufacturerId != null) if (!vc.Has("vendorname", o.WholeSalerId))
o.ManufacturerViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.ManufacturerId).Select(x => x.Name).FirstOrDefaultAsync(); vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.WholeSalerId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.WholeSalerId);
if (o.AlternativeWholeSalerId != null) o.WholeSalerViz = vc.Get("vendorname", o.WholeSalerId);
o.AlternativeWholeSalerViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.AlternativeWholeSalerId).Select(x => x.Name).FirstOrDefaultAsync(); }
if (o.ManufacturerId != null)
{
if (!vc.Has("vendorname", o.ManufacturerId))
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.ManufacturerId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.ManufacturerId);
o.ManufacturerViz = vc.Get("vendorname", o.ManufacturerId);
}
if (o.AlternativeWholeSalerId != null)
{
if (!vc.Has("vendorname", o.AlternativeWholeSalerId))
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.AlternativeWholeSalerId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.AlternativeWholeSalerId);
o.AlternativeWholeSalerViz = vc.Get("vendorname", o.AlternativeWholeSalerId);
}
//if there turns out to be a situation where there are just too many serials slowing down the reporting always //if there turns out to be a situation where there are just too many serials slowing down the reporting always
//can look at tying this to the report data list column selection to check if serials are selected to display or not //can look at tying this to the report data list column selection to check if serials are selected to display or not
o.PartSerialsViz = string.Join(", ", (await ct.PartSerial.Where(z => z.PartId == o.Id).OrderBy(z => z.Serial).Select(z => z.Serial).ToListAsync())); o.PartSerialsViz = string.Join(", ", (await ct.PartSerial.Where(z => z.PartId == o.Id).OrderBy(z => z.Serial).Select(z => z.Serial).ToListAsync()));

View File

@@ -259,53 +259,76 @@ namespace AyaNova.Biz
{ {
var idList = dataListSelectedRequest.SelectedRowIds; var idList = dataListSelectedRequest.SelectedRowIds;
JArray ReportData = new JArray(); JArray ReportData = new JArray();
while (idList.Any()) using (var command = ct.Database.GetDbConnection().CreateCommand())
{ {
var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE); ct.Database.OpenConnection();
idList = idList.Skip(IReportAbleObject.REPORT_DATA_BATCH_SIZE).ToArray(); while (idList.Any())
//query for this batch, comes back in db natural order unfortunately
var batchResults = await ct.PartInventory.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;
//cache frequent viz data
var AyaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
UserTranslationId,
CurrentUserRoles);
using (var command = ct.Database.GetDbConnection().CreateCommand())
{ {
ct.Database.OpenConnection(); var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE);
idList = idList.Skip(IReportAbleObject.REPORT_DATA_BATCH_SIZE).ToArray();
//query for this batch, comes back in db natural order unfortunately
var batchResults = await ct.PartInventory.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 (PartInventory w in orderedList) foreach (PartInventory w in orderedList)
{ {
if (!ReportRenderManager.KeepGoing(jobId)) return null; if (!ReportRenderManager.KeepGoing(jobId)) return null;
await PopulateVizFields(w, AyaTypesEnumList, command); await PopulateVizFields(w, command);
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;
} }
private VizCache vc = new VizCache();
//populate viz fields from provided object //populate viz fields from provided object
private async Task PopulateVizFields(PartInventory o, List<NameIdItem> ayaTypesEnumList, System.Data.Common.DbCommand cmd) private async Task PopulateVizFields(PartInventory o, System.Data.Common.DbCommand cmd)
{ {
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => new { PartDescriptionViz = x.Description, partNameViz = x.Name, partUPCViz = x.UPC }).FirstOrDefaultAsync(); if (ayaTypesEnumList == null)
o.PartDescriptionViz = partInfo.PartDescriptionViz; ayaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
o.PartNameViz = partInfo.partNameViz; StringUtil.TrimTypeName(typeof(AyaType).ToString()),
o.PartUpcViz = partInfo.partUPCViz; UserTranslationId,
CurrentUserRoles);
if (!vc.Has("partname", o.PartId))
{
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => new { x.Description, x.Name, x.UPC }).FirstOrDefaultAsync();
vc.Add(partInfo.Name, "partname", o.PartId);
vc.Add(partInfo.Description, "partdescription", o.PartId);
vc.Add(partInfo.UPC, "partupc", o.PartId);
}
o.PartDescriptionViz = vc.Get("partdescription", o.PartId);
o.PartNameViz = vc.Get("partname", o.PartId);
o.PartUpcViz = vc.Get("partupc", o.PartId);
if (o.PartWarehouseId != 0)
{
if (!vc.Has("partwarehouse", o.PartWarehouseId))
vc.Add(await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == o.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(), "partwarehouse", o.PartWarehouseId);
o.PartWarehouseViz = vc.Get("partwarehouse", o.PartWarehouseId);
}
o.PartWarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == o.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync();
if (o.SourceType != null) if (o.SourceType != null)
o.SourceTypeViz = ayaTypesEnumList.Where(x => x.Id == (long)o.SourceType).Select(x => x.Name).First(); o.SourceTypeViz = ayaTypesEnumList.Where(x => x.Id == (long)o.SourceType).Select(x => x.Name).First();
if (o.SourceType != null && o.SourceId != null) if (o.SourceType != null && o.SourceId != null)
o.SourceViz = BizObjectNameFetcherDirect.Name((AyaType)o.SourceType, (long)o.SourceId, UserTranslationId, cmd); o.SourceViz = BizObjectNameFetcherDirect.Name((AyaType)o.SourceType, (long)o.SourceId, UserTranslationId, cmd);
if (o.SourceType != null && o.SourceId != null)
{
if (!vc.Has($"b{o.SourceType}{o.SourceId}"))
vc.Add(BizObjectNameFetcherDirect.Name((AyaType)o.SourceType, (long)o.SourceId, UserTranslationId, cmd), $"b{o.SourceType}{o.SourceId}");
o.SourceViz = vc.Get($"b{o.SourceType}{o.SourceId}");
}
} }
private List<NameIdItem> ayaTypesEnumList = null;
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT // IMPORT EXPORT

View File

@@ -61,7 +61,7 @@ namespace AyaNova.Biz
} }
//request cache for viz fields
private VizCache vc = new VizCache(); private VizCache vc = new VizCache();
private ObjectCache oc = new ObjectCache(); private ObjectCache oc = new ObjectCache();

View File

@@ -61,7 +61,7 @@ namespace AyaNova.Biz
UserType.Service); UserType.Service);
} }
//request cache for viz fields
private VizCache vc = new VizCache(); private VizCache vc = new VizCache();
private ObjectCache oc = new ObjectCache(); private ObjectCache oc = new ObjectCache();