This commit is contained in:
@@ -199,31 +199,7 @@ namespace AyaNova.Biz
|
||||
//if (workorderId==0){WorkOrderBiz.GenerateWorkOrder()} //this is how it would work in theory
|
||||
|
||||
|
||||
// CustomerServiceRequest SnapshotOfOriginalDBObj = new CustomerServiceRequest();
|
||||
// CopyObject.Copy(dbObject, SnapshotOfOriginalDBObj);
|
||||
// CopyObject.Copy(putObject, dbObject, "Id");
|
||||
// dbObject.Tags = TagBiz.NormalizeTags(dbObject.Tags);
|
||||
// dbObject.CustomFields = JsonUtil.CompactJson(dbObject.CustomFields);
|
||||
// ct.Entry(dbObject).OriginalValues["Concurrency"] = putObject.Concurrency;
|
||||
// await ValidateAsync(dbObject, SnapshotOfOriginalDBObj);
|
||||
// if (HasErrors) return null;
|
||||
// try
|
||||
// {
|
||||
// await ct.SaveChangesAsync();
|
||||
// }
|
||||
// catch (DbUpdateConcurrencyException)
|
||||
// {
|
||||
// if (!await ExistsAsync(putObject.Id))
|
||||
// AddError(ApiErrorCode.NOT_FOUND);
|
||||
// else
|
||||
// AddError(ApiErrorCode.CONCURRENCY_CONFLICT);
|
||||
// return null;
|
||||
// }
|
||||
// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct);
|
||||
// await SearchIndexAsync(dbObject, false);
|
||||
// await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags);
|
||||
// await HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj);
|
||||
//return dbObject;
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -65,13 +65,13 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<HeadOffice> DuplicateAsync(long id)
|
||||
{
|
||||
HeadOffice dbObject = await GetAsync(id, false);
|
||||
var dbObject = await GetAsync(id, false);
|
||||
if (dbObject == null)
|
||||
{
|
||||
AddError(ApiErrorCode.NOT_FOUND, "id");
|
||||
return null;
|
||||
}
|
||||
HeadOffice newObject = new HeadOffice();
|
||||
var newObject = new HeadOffice();
|
||||
CopyObject.Copy(dbObject, newObject, "Wiki");
|
||||
string newUniqueName = string.Empty;
|
||||
bool NotUnique = true;
|
||||
@@ -98,7 +98,7 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<HeadOffice> GetAsync(long id, bool logTheGetEvent = true)
|
||||
{
|
||||
var ret = await ct.HeadOffice.SingleOrDefaultAsync(z => z.Id == id);
|
||||
var ret = await ct.HeadOffice.AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
|
||||
if (logTheGetEvent && ret != null)
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
|
||||
return ret;
|
||||
@@ -109,20 +109,17 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<HeadOffice> PutAsync(HeadOffice putObject)
|
||||
{
|
||||
HeadOffice dbObject = await ct.HeadOffice.SingleOrDefaultAsync(z => z.Id == putObject.Id);
|
||||
var dbObject = await GetAsync(putObject.Id, false);
|
||||
if (dbObject == null)
|
||||
{
|
||||
AddError(ApiErrorCode.NOT_FOUND, "id");
|
||||
return null;
|
||||
}
|
||||
HeadOffice SnapshotOfOriginalDBObj = new HeadOffice();
|
||||
CopyObject.Copy(dbObject, SnapshotOfOriginalDBObj);
|
||||
CopyObject.Copy(putObject, dbObject, "Id");
|
||||
dbObject.Tags = TagBiz.NormalizeTags(dbObject.Tags);
|
||||
dbObject.CustomFields = JsonUtil.CompactJson(dbObject.CustomFields);
|
||||
ct.Entry(dbObject).OriginalValues["Concurrency"] = putObject.Concurrency;
|
||||
await ValidateAsync(dbObject, SnapshotOfOriginalDBObj);
|
||||
putObject.Tags = TagBiz.NormalizeTags(putObject.Tags);
|
||||
putObject.CustomFields = JsonUtil.CompactJson(putObject.CustomFields);
|
||||
await ValidateAsync(putObject, dbObject);
|
||||
if (HasErrors) return null;
|
||||
ct.Replace(dbObject, putObject);
|
||||
try
|
||||
{
|
||||
await ct.SaveChangesAsync();
|
||||
@@ -136,9 +133,9 @@ namespace AyaNova.Biz
|
||||
return null;
|
||||
}
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct);
|
||||
await SearchIndexAsync(dbObject, false);
|
||||
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags);
|
||||
await HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj);
|
||||
await SearchIndexAsync(putObject, false);
|
||||
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
|
||||
await HandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
|
||||
return dbObject;
|
||||
}
|
||||
|
||||
@@ -151,7 +148,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
try
|
||||
{
|
||||
HeadOffice dbObject = await ct.HeadOffice.SingleOrDefaultAsync(z => z.Id == id);
|
||||
var dbObject = await GetAsync(id, false);
|
||||
if (dbObject == null)
|
||||
{
|
||||
AddError(ApiErrorCode.NOT_FOUND);
|
||||
@@ -214,7 +211,7 @@ namespace AyaNova.Biz
|
||||
|
||||
public async Task<Search.SearchIndexProcessObjectParameters> GetSearchResultSummary(long id)
|
||||
{
|
||||
var obj = await ct.HeadOffice.SingleOrDefaultAsync(z => z.Id == id);
|
||||
var obj = await GetAsync(id, false);
|
||||
var SearchParams = new Search.SearchIndexProcessObjectParameters();
|
||||
DigestSearchText(obj, SearchParams);
|
||||
return SearchParams;
|
||||
@@ -319,7 +316,7 @@ 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.HeadOffice.Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
var batchResults = await ct.HeadOffice.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;
|
||||
foreach (HeadOffice w in orderedList)
|
||||
@@ -406,7 +403,7 @@ namespace AyaNova.Biz
|
||||
if (jobData.ContainsKey("idList"))
|
||||
idList = ((JArray)jobData["idList"]).ToObject<List<long>>();
|
||||
else
|
||||
idList = await ct.HeadOffice.Select(z => z.Id).ToListAsync();
|
||||
idList = await ct.HeadOffice.AsNoTracking().Select(z => z.Id).ToListAsync();
|
||||
bool SaveIt = false;
|
||||
foreach (long id in idList)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user