This commit is contained in:
@@ -515,7 +515,7 @@ MULTIPLE discount / markup ITEMS
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
|
||||
@@ -364,7 +364,9 @@ namespace AyaNova.Biz
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
//populate viz fields from provided object
|
||||
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
|
||||
|
||||
@@ -219,7 +219,7 @@ namespace AyaNova.Biz
|
||||
o.UserViz = vc.Get("user", o.UserId);
|
||||
|
||||
}
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
|
||||
@@ -318,7 +318,7 @@ namespace AyaNova.Biz
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
|
||||
@@ -313,7 +313,7 @@ namespace AyaNova.Biz
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace AyaNova.Biz
|
||||
ValidateCanDelete(dbObject);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
{
|
||||
{
|
||||
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.LoanUnit && x.ObjectId == id).Select(x => x.Id).ToListAsync();
|
||||
if (IDList.Count() > 0)
|
||||
{
|
||||
@@ -217,7 +217,7 @@ namespace AyaNova.Biz
|
||||
.AddText(obj.Name)
|
||||
.AddText(obj.Wiki)
|
||||
.AddText(obj.Tags)
|
||||
.AddText(obj.Serial)
|
||||
.AddText(obj.Serial)
|
||||
.AddCustomFields(obj.CustomFields);
|
||||
}
|
||||
|
||||
@@ -285,6 +285,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.LoanUnit.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 (LoanUnit w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -294,15 +295,26 @@ 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(LoanUnit o)
|
||||
{
|
||||
|
||||
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)
|
||||
{
|
||||
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}]");
|
||||
|
||||
bool isNew = currentObj == null;
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace AyaNova.Biz
|
||||
ValidateCanDelete(dbObject);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
{
|
||||
{
|
||||
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Memo && x.ObjectId == id).Select(x => x.Id).ToListAsync();
|
||||
if (IDList.Count() > 0)
|
||||
{
|
||||
@@ -215,7 +215,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
|
||||
//skip validation if seeding
|
||||
if(ServerBootConfig.SEEDING ) return;
|
||||
if (ServerBootConfig.SEEDING) return;
|
||||
|
||||
//Only can send a memo from your own account
|
||||
//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();
|
||||
//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 (Memo w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -299,18 +300,29 @@ 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(Memo o)
|
||||
{
|
||||
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)
|
||||
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)
|
||||
{
|
||||
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}]");
|
||||
|
||||
bool isNew = currentObj == null;
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace AyaNova.Biz
|
||||
AuthorizationRoles.BizAdmin,
|
||||
UserType.NotService);//picked not service arbitrarily, probably a non-factor
|
||||
}
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
private ObjectCache oc = new ObjectCache();
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
var partIdList = ret.Items.Select(z => z.PartId).ToArray();
|
||||
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)
|
||||
{
|
||||
pai.PartNameViz = partNames.Where(z => z.Id == pai.PartId).First().Name;
|
||||
@@ -184,7 +184,7 @@ namespace AyaNova.Biz
|
||||
ValidateCanDelete(dbObject);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
{
|
||||
{
|
||||
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.PartAssembly && x.ObjectId == id).Select(x => x.Id).ToListAsync();
|
||||
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();
|
||||
//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 (PartAssembly w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -347,15 +348,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(PartAssembly pa)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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}]");
|
||||
|
||||
bool isNew = currentObj == null;
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace AyaNova.Biz
|
||||
await ValidateCanDeleteAsync(dbObject);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
{
|
||||
{
|
||||
var IDList = await ct.Review.AsNoTracking().Where(x => x.AType == AyaType.Part && x.ObjectId == id).Select(x => x.Id).ToListAsync();
|
||||
if (IDList.Count() > 0)
|
||||
{
|
||||
@@ -512,6 +512,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Part.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 (Part w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -521,21 +522,37 @@ 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(Part o)
|
||||
{
|
||||
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)
|
||||
o.ManufacturerViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.ManufacturerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (o.AlternativeWholeSalerId != null)
|
||||
o.AlternativeWholeSalerViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.AlternativeWholeSalerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("vendorname", o.WholeSalerId))
|
||||
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.WholeSalerId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.WholeSalerId);
|
||||
o.WholeSalerViz = vc.Get("vendorname", o.WholeSalerId);
|
||||
}
|
||||
|
||||
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
|
||||
//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()));
|
||||
|
||||
@@ -259,53 +259,76 @@ namespace AyaNova.Biz
|
||||
{
|
||||
var idList = dataListSelectedRequest.SelectedRowIds;
|
||||
JArray ReportData = new JArray();
|
||||
while (idList.Any())
|
||||
using (var command = ct.Database.GetDbConnection().CreateCommand())
|
||||
{
|
||||
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;
|
||||
|
||||
//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();
|
||||
while (idList.Any())
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
await PopulateVizFields(w, AyaTypesEnumList, command);
|
||||
await PopulateVizFields(w, command);
|
||||
var jo = JObject.FromObject(w);
|
||||
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
|
||||
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(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();
|
||||
o.PartDescriptionViz = partInfo.PartDescriptionViz;
|
||||
o.PartNameViz = partInfo.partNameViz;
|
||||
o.PartUpcViz = partInfo.partUPCViz;
|
||||
if (ayaTypesEnumList == null)
|
||||
ayaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
|
||||
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)
|
||||
o.SourceTypeViz = ayaTypesEnumList.Where(x => x.Id == (long)o.SourceType).Select(x => x.Name).First();
|
||||
|
||||
if (o.SourceType != null && o.SourceId != null)
|
||||
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
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace AyaNova.Biz
|
||||
}
|
||||
|
||||
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
private ObjectCache oc = new ObjectCache();
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace AyaNova.Biz
|
||||
UserType.Service);
|
||||
}
|
||||
|
||||
//request cache for viz fields
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
private ObjectCache oc = new ObjectCache();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user