This commit is contained in:
2021-08-25 19:23:00 +00:00
parent 95c41a297e
commit a13bdc1a04

View File

@@ -29,7 +29,7 @@ namespace AyaNova.Biz
return new PartInventoryDataListBiz(ct, 1, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, AuthorizationRoles.BizAdmin);
}
////////////////////////////////////////////////////////////////////////////////////////////////
@@ -44,43 +44,41 @@ namespace AyaNova.Biz
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.VPartInventoryList.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
var batchResults = await ct.VPartInventoryList.AsNoTracking().Where(z => batch.Contains(z.PartInventoryId)).ToArrayAsync();
//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.PartInventoryId 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();
// using (var command = ct.Database.GetDbConnection().CreateCommand())
// {
// ct.Database.OpenConnection();
foreach (PartInventory w in orderedList)
{
await PopulateVizFields(w, AyaTypesEnumList, command);
var jo = JObject.FromObject(w);
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
foreach (VPartInventoryList w in orderedList)
{
//await PopulateVizFields(w, AyaTypesEnumList, command);
var jo = JObject.FromObject(w);
ReportData.Add(jo);
}
//}
}
return ReportData;
}
//populate viz fields from provided object
private async Task PopulateVizFields(PartInventory o, List<NameIdItem> ayaTypesEnumList, System.Data.Common.DbCommand cmd)
{
o.PartViz = await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => x.PartNumber).FirstOrDefaultAsync();
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, cmd);
// //populate viz fields from provided object
// private async Task PopulateVizFields(VPartInventoryList o, List<NameIdItem> ayaTypesEnumList, System.Data.Common.DbCommand cmd)
// {
// o.PartViz = await ct.Part.AsNoTracking().Where(x => x.Id == o.PartId).Select(x => x.PartNumber).FirstOrDefaultAsync();
// 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, cmd);
}
// }
////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT