case 4192
This commit is contained in:
@@ -6,6 +6,16 @@ The most recent changes are written in the AyaNova manual [hosted on our website
|
|||||||
|
|
||||||
## 2022
|
## 2022
|
||||||
|
|
||||||
|
### AyaNova 8.0.13 (2022-09-28)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- UI, Server, Documentation: Bulk Tag and delete extensions changed to show progress and support cancellation of long running jobs
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- UI: Dashboard issue potentially causing freeze / high memory usage with Reminders, Reviews and Scheduled dashboard widgets
|
||||||
|
|
||||||
### AyaNova 8.0.12 (2022-09-27)
|
### AyaNova 8.0.12 (2022-09-27)
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ theme:
|
|||||||
site_name: AyaNova manual
|
site_name: AyaNova manual
|
||||||
site_dir: '../../../server/AyaNova/wwwroot/docs'
|
site_dir: '../../../server/AyaNova/wwwroot/docs'
|
||||||
strict: true
|
strict: true
|
||||||
copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-09-27
|
copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-09-28
|
||||||
extra:
|
extra:
|
||||||
generator: false
|
generator: false
|
||||||
# Extensions
|
# Extensions
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ MULTIPLE discount / markup ITEMS
|
|||||||
.ToArrayAsync();
|
.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;
|
batchResults = null;
|
||||||
foreach (Contract w in orderedList)
|
foreach (Contract w in orderedList)
|
||||||
{
|
{
|
||||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||||
@@ -510,12 +510,12 @@ MULTIPLE discount / markup ITEMS
|
|||||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||||
ReportData.Add(jo);
|
ReportData.Add(jo);
|
||||||
}
|
}
|
||||||
orderedList=null;
|
orderedList = null;
|
||||||
}
|
}
|
||||||
vc.Clear();
|
vc.Clear();
|
||||||
return ReportData;
|
return ReportData;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VizCache vc = new VizCache();
|
private VizCache vc = new VizCache();
|
||||||
|
|
||||||
|
|
||||||
@@ -546,7 +546,7 @@ MULTIPLE discount / markup ITEMS
|
|||||||
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.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)
|
foreach (var i in o.ServiceRateItems)
|
||||||
{
|
{
|
||||||
if (!vc.Has("servicerate", i.ServiceRateId))
|
if (!vc.Has("servicerate", i.ServiceRateId))
|
||||||
@@ -555,7 +555,7 @@ MULTIPLE discount / markup ITEMS
|
|||||||
}
|
}
|
||||||
i.ServiceRateViz = vc.Get("servicerate", i.ServiceRateId);
|
i.ServiceRateViz = vc.Get("servicerate", i.ServiceRateId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach (var i in o.TravelRateItems)
|
foreach (var i in o.TravelRateItems)
|
||||||
{
|
{
|
||||||
@@ -617,10 +617,30 @@ MULTIPLE discount / markup ITEMS
|
|||||||
else
|
else
|
||||||
idList = await ct.Contract.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Contract.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Contract o = null;
|
Contract o = null;
|
||||||
@@ -656,7 +676,7 @@ MULTIPLE discount / markup ITEMS
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -666,6 +686,10 @@ MULTIPLE discount / markup ITEMS
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -597,28 +597,30 @@ namespace AyaNova.Biz
|
|||||||
idList = await ct.Customer.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Customer.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
//case 4192
|
//case 4192
|
||||||
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
var TotalRecords = idList.LongCount();
|
var TotalRecords = idList.LongCount();
|
||||||
long CurrentRecord = -1;
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
//Update progress / cancel requested?
|
//Update progress / cancel requested?
|
||||||
CurrentRecord++;
|
CurrentRecord++;
|
||||||
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
{
|
{
|
||||||
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
{
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
LastProgressCheck = DateTime.UtcNow;
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
@@ -655,7 +657,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -665,7 +667,12 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -395,10 +395,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.CustomerServiceRequest.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.CustomerServiceRequest.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
CustomerServiceRequest o = null;
|
CustomerServiceRequest o = null;
|
||||||
@@ -434,7 +454,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -444,6 +464,10 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
@@ -537,7 +561,7 @@ namespace AyaNova.Biz
|
|||||||
//can this customer even be delivered to?
|
//can this customer even be delivered to?
|
||||||
var custInfo = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => new { x.Active, x.Tags, x.EmailAddress }).FirstOrDefaultAsync();
|
var custInfo = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => new { x.Active, x.Tags, x.EmailAddress }).FirstOrDefaultAsync();
|
||||||
if (custInfo != null && custInfo.Active && !string.IsNullOrWhiteSpace(custInfo.EmailAddress))
|
if (custInfo != null && custInfo.Active && !string.IsNullOrWhiteSpace(custInfo.EmailAddress))
|
||||||
{
|
{
|
||||||
var subs = await ct.CustomerNotifySubscription.AsNoTracking().Where(z => z.EventType == NotifyEventType.CSRAccepted).OrderBy(z => z.Id).ToListAsync();
|
var subs = await ct.CustomerNotifySubscription.AsNoTracking().Where(z => z.EventType == NotifyEventType.CSRAccepted).OrderBy(z => z.Id).ToListAsync();
|
||||||
foreach (var sub in subs)
|
foreach (var sub in subs)
|
||||||
{
|
{
|
||||||
@@ -562,14 +586,14 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!WasDeclined && o.Status == CustomerServiceRequestStatus.Declined)
|
if (!WasDeclined && o.Status == CustomerServiceRequestStatus.Declined)
|
||||||
{
|
{
|
||||||
//PROXY CUSTOMER NOTIFICATION SUBSCRIPTION HANDLING
|
//PROXY CUSTOMER NOTIFICATION SUBSCRIPTION HANDLING
|
||||||
//CSR DECLINED
|
//CSR DECLINED
|
||||||
//can this customer even be delivered to?
|
//can this customer even be delivered to?
|
||||||
var custInfo = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => new { x.Active, x.Tags, x.EmailAddress }).FirstOrDefaultAsync();
|
var custInfo = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => new { x.Active, x.Tags, x.EmailAddress }).FirstOrDefaultAsync();
|
||||||
if (custInfo != null && custInfo.Active && !string.IsNullOrWhiteSpace(custInfo.EmailAddress))
|
if (custInfo != null && custInfo.Active && !string.IsNullOrWhiteSpace(custInfo.EmailAddress))
|
||||||
{
|
{
|
||||||
var subs = await ct.CustomerNotifySubscription.AsNoTracking().Where(z => z.EventType == NotifyEventType.CSRRejected).OrderBy(z => z.Id).ToListAsync();
|
var subs = await ct.CustomerNotifySubscription.AsNoTracking().Where(z => z.EventType == NotifyEventType.CSRRejected).OrderBy(z => z.Id).ToListAsync();
|
||||||
foreach (var sub in subs)
|
foreach (var sub in subs)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -497,10 +497,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.HeadOffice.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.HeadOffice.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
HeadOffice o = null;
|
HeadOffice o = null;
|
||||||
@@ -536,7 +556,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -547,6 +567,10 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, FailedObjectCount == 0 ? JobStatus.Completed : JobStatus.Failed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, FailedObjectCount == 0 ? JobStatus.Completed : JobStatus.Failed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -412,10 +412,29 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.LoanUnit.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.LoanUnit.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
LoanUnit o = null;
|
LoanUnit o = null;
|
||||||
@@ -451,7 +470,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -461,6 +480,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -290,7 +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;
|
batchResults = null;
|
||||||
foreach (Memo w in orderedList)
|
foreach (Memo w in orderedList)
|
||||||
{
|
{
|
||||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||||
@@ -300,11 +300,11 @@ 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;
|
orderedList = null;
|
||||||
}
|
}
|
||||||
vc.Clear();
|
vc.Clear();
|
||||||
return ReportData;
|
return ReportData;
|
||||||
}
|
}
|
||||||
private VizCache vc = new VizCache();
|
private VizCache vc = new VizCache();
|
||||||
|
|
||||||
//populate viz fields from provided object
|
//populate viz fields from provided object
|
||||||
@@ -397,10 +397,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Memo.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Memo.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Memo o = null;
|
Memo o = null;
|
||||||
@@ -436,7 +456,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -446,6 +466,10 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -995,10 +995,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.PM.Select(z => z.Id).ToListAsync();
|
idList = await ct.PM.Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
ICoreBizObjectModel o = null;
|
ICoreBizObjectModel o = null;
|
||||||
@@ -1035,7 +1055,7 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -1045,6 +1065,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -554,10 +554,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.PartAssembly.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.PartAssembly.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
PartAssembly o = null;
|
PartAssembly o = null;
|
||||||
@@ -593,7 +613,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -603,6 +623,10 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ namespace AyaNova.Biz
|
|||||||
//
|
//
|
||||||
internal async Task<List<NameIdActiveChargeCostItem>> GetNameIdActiveChargeCostItemsAsync()
|
internal async Task<List<NameIdActiveChargeCostItem>> GetNameIdActiveChargeCostItemsAsync()
|
||||||
{
|
{
|
||||||
var pList = await ct.Part.AsNoTracking().OrderBy(z=>z.Name).Select(x => new NameIdActiveChargeCostItem {Name=x.Name, Id = x.Id, Active = x.Active, Cost = x.Cost, Charge = x.Retail }).ToListAsync();
|
var pList = await ct.Part.AsNoTracking().OrderBy(z => z.Name).Select(x => new NameIdActiveChargeCostItem { Name = x.Name, Id = x.Id, Active = x.Active, Cost = x.Cost, Charge = x.Retail }).ToListAsync();
|
||||||
|
|
||||||
// long[] partIdList = new long[0];
|
// long[] partIdList = new long[0];
|
||||||
// var PickList = AyaNova.PickList.PickListFactory.GetAyaPickList(AyaType.Part);
|
// var PickList = AyaNova.PickList.PickListFactory.GetAyaPickList(AyaType.Part);
|
||||||
@@ -717,10 +717,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Part.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Part.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Part o = null;
|
Part o = null;
|
||||||
@@ -756,7 +776,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -766,6 +786,10 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -423,10 +423,31 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.PartWarehouse.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.PartWarehouse.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
PartWarehouse o = null;
|
PartWarehouse o = null;
|
||||||
@@ -462,7 +483,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -472,6 +493,12 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -445,10 +445,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Project.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Project.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Project o = null;
|
Project o = null;
|
||||||
@@ -484,7 +504,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -494,6 +514,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -790,7 +790,7 @@ namespace AyaNova.Biz
|
|||||||
return RequestsToUpdate;
|
return RequestsToUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Update part values into poitem if the vendor has changed
|
//Update part values into poitem if the vendor has changed
|
||||||
if (oldObj.VendorId != newObj.VendorId)
|
if (oldObj.VendorId != newObj.VendorId)
|
||||||
@@ -948,10 +948,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.PurchaseOrder.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.PurchaseOrder.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
PurchaseOrder o = null;
|
PurchaseOrder o = null;
|
||||||
@@ -988,7 +1008,7 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -998,6 +1018,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -999,10 +999,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Quote.Select(z => z.Id).ToListAsync();
|
idList = await ct.Quote.Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
ICoreBizObjectModel o = null;
|
ICoreBizObjectModel o = null;
|
||||||
@@ -1039,7 +1059,7 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -1049,6 +1069,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -386,10 +386,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Reminder.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Reminder.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Reminder o = null;
|
Reminder o = null;
|
||||||
@@ -425,7 +445,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -435,6 +455,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -464,10 +464,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Review.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Review.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Review o = null;
|
Review o = null;
|
||||||
@@ -503,7 +523,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -513,6 +533,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
@@ -605,8 +630,8 @@ namespace AyaNova.Biz
|
|||||||
// }//overdue event
|
// }//overdue event
|
||||||
// }//custom events for created / modified
|
// }//custom events for created / modified
|
||||||
#endregion old
|
#endregion old
|
||||||
|
|
||||||
//## DELETED EVENTS
|
//## DELETED EVENTS
|
||||||
|
|
||||||
//any event added below needs to be removed, so
|
//any event added below needs to be removed, so
|
||||||
//just blanket remove any event for this object of eventtype that would be added below here
|
//just blanket remove any event for this object of eventtype that would be added below here
|
||||||
@@ -618,7 +643,7 @@ namespace AyaNova.Biz
|
|||||||
if (ayaEvent == AyaEvent.Created || ayaEvent == AyaEvent.Modified)
|
if (ayaEvent == AyaEvent.Created || ayaEvent == AyaEvent.Modified)
|
||||||
{
|
{
|
||||||
//# REVIEW IMMINENT
|
//# REVIEW IMMINENT
|
||||||
if (o.CompletedDate == null && o.ReviewDate > DateTime.UtcNow)
|
if (o.CompletedDate == null && o.ReviewDate > DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
//notify users (time delayed)
|
//notify users (time delayed)
|
||||||
var subs = await ct.NotifySubscription.Where(z => z.EventType == NotifyEventType.ReviewImminent).ToListAsync();
|
var subs = await ct.NotifySubscription.Where(z => z.EventType == NotifyEventType.ReviewImminent).ToListAsync();
|
||||||
@@ -650,7 +675,7 @@ namespace AyaNova.Biz
|
|||||||
}//review imminent
|
}//review imminent
|
||||||
|
|
||||||
}//end of process notifications
|
}//end of process notifications
|
||||||
|
|
||||||
}//end of process notifications
|
}//end of process notifications
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -448,10 +448,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.ServiceRate.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.ServiceRate.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
ServiceRate o = null;
|
ServiceRate o = null;
|
||||||
@@ -487,7 +507,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -497,6 +517,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -455,10 +455,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.TaskGroup.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.TaskGroup.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
TaskGroup o = null;
|
TaskGroup o = null;
|
||||||
@@ -487,7 +507,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -497,6 +517,12 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,7 +343,7 @@ namespace AyaNova.Biz
|
|||||||
var batchResults = await ct.TaxCode.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
var batchResults = await ct.TaxCode.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;
|
batchResults = null;
|
||||||
foreach (TaxCode w in orderedList)
|
foreach (TaxCode w in orderedList)
|
||||||
{
|
{
|
||||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||||
@@ -352,7 +352,7 @@ 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;
|
orderedList = null;
|
||||||
}
|
}
|
||||||
return ReportData;
|
return ReportData;
|
||||||
}
|
}
|
||||||
@@ -434,10 +434,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.TaxCode.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.TaxCode.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
TaxCode o = null;
|
TaxCode o = null;
|
||||||
@@ -473,7 +493,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -483,6 +503,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
@@ -498,7 +523,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<TaxCodeBiz>();
|
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger<TaxCodeBiz>();
|
||||||
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;
|
||||||
|
|||||||
@@ -443,10 +443,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.TravelRate.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.TravelRate.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
TravelRate o = null;
|
TravelRate o = null;
|
||||||
@@ -482,7 +502,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -492,6 +512,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -644,10 +644,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Unit.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Unit.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Unit o = null;
|
Unit o = null;
|
||||||
@@ -683,7 +703,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -693,6 +713,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ namespace AyaNova.Biz
|
|||||||
return await GetReportData(dataListSelectedRequest, jobId);
|
return await GetReportData(dataListSelectedRequest, jobId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<string>> ImportData(AyImportData importData)
|
public async Task<List<string>> ImportData(AyImportData importData)
|
||||||
{
|
{
|
||||||
List<string> ImportResult = new List<string>();
|
List<string> ImportResult = new List<string>();
|
||||||
string ImportTag = ImportUtil.GetImportTag();
|
string ImportTag = ImportUtil.GetImportTag();
|
||||||
@@ -443,10 +443,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.UnitModel.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.UnitModel.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
UnitModel o = null;
|
UnitModel o = null;
|
||||||
@@ -482,7 +502,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -492,6 +512,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1254,10 +1254,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.User.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.User.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
//a little different than normal here because the built in getasync doesn't return
|
//a little different than normal here because the built in getasync doesn't return
|
||||||
@@ -1296,7 +1316,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -1306,6 +1326,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -461,10 +461,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.Vendor.AsNoTracking().Select(z => z.Id).ToListAsync();
|
idList = await ct.Vendor.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
Vendor o = null;
|
Vendor o = null;
|
||||||
@@ -500,7 +520,7 @@ namespace AyaNova.Biz
|
|||||||
FailedObjectCount++;
|
FailedObjectCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -510,6 +530,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1218,10 +1218,30 @@ namespace AyaNova.Biz
|
|||||||
else
|
else
|
||||||
idList = await ct.WorkOrder.Select(z => z.Id).ToListAsync();
|
idList = await ct.WorkOrder.Select(z => z.Id).ToListAsync();
|
||||||
bool SaveIt = false;
|
bool SaveIt = false;
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
TimeSpan ProgressAndCancelCheckSpan = new TimeSpan(0, 0, ServerBootConfig.JOB_PROGRESS_UPDATE_AND_CANCEL_CHECK_SECONDS);
|
||||||
|
DateTime LastProgressCheck = DateTime.UtcNow.Subtract(new TimeSpan(1, 1, 1, 1, 1));
|
||||||
|
var TotalRecords = idList.LongCount();
|
||||||
|
long CurrentRecord = -1;
|
||||||
|
//---------------------------------
|
||||||
|
|
||||||
foreach (long id in idList)
|
foreach (long id in idList)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//--------------------------------
|
||||||
|
//case 4192
|
||||||
|
//Update progress / cancel requested?
|
||||||
|
CurrentRecord++;
|
||||||
|
if (DateUtil.IsAfterDuration(LastProgressCheck, ProgressAndCancelCheckSpan))
|
||||||
|
{
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{CurrentRecord}/{TotalRecords}");
|
||||||
|
if (await JobsBiz.GetJobStatusAsync(job.GId) == JobStatus.CancelRequested)
|
||||||
|
break;
|
||||||
|
LastProgressCheck = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
//---------------------------------
|
||||||
SaveIt = false;
|
SaveIt = false;
|
||||||
ClearErrors();
|
ClearErrors();
|
||||||
ICoreBizObjectModel o = null;
|
ICoreBizObjectModel o = null;
|
||||||
@@ -1258,7 +1278,7 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TEMPORARY MEASURE AWAITING BETTER SOLUTION AND CANCELLABLE EXTENSION JOBS
|
|
||||||
//delay so we're not tying up all the resources in a tight loop
|
//delay so we're not tying up all the resources in a tight loop
|
||||||
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
await Task.Delay(AyaNova.Util.ServerBootConfig.JOB_OBJECT_HANDLE_BATCH_JOB_LOOP_DELAY);
|
||||||
}
|
}
|
||||||
@@ -1268,6 +1288,11 @@ namespace AyaNova.Biz
|
|||||||
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
await JobsBiz.LogJobAsync(job.GId, ExceptionUtil.ExtractAllExceptionMessages(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------
|
||||||
|
//case 4192
|
||||||
|
await JobsBiz.UpdateJobProgressAsync(job.GId, $"{++CurrentRecord}/{TotalRecords}");
|
||||||
|
//---------------------------------
|
||||||
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
await JobsBiz.LogJobAsync(job.GId, $"LT:BatchJob {job.SubType} {idList.Count}{(FailedObjectCount > 0 ? " - LT:Failed " + FailedObjectCount : "")}");
|
||||||
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Completed);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user