diff --git a/server/AyaNova/biz/PartAssemblyBiz.cs b/server/AyaNova/biz/PartAssemblyBiz.cs index 8cba4df8..c85e0565 100644 --- a/server/AyaNova/biz/PartAssemblyBiz.cs +++ b/server/AyaNova/biz/PartAssemblyBiz.cs @@ -106,47 +106,7 @@ namespace AyaNova.Biz return ret; } - /* - //////////////////////////////////////////////////////////////////////////////////////////////// - //UPDATE - //this is how it was roughly - internal async Task PutAsync(PartAssembly putObject) - { - // PartAssembly dbObject = await ct.PartAssembly.SingleOrDefaultAsync(m => m.Id == putObject.Id); - PartAssembly dbObject = await GetAsync(putObject.Id, false); - if (dbObject == null) - { - AddError(ApiErrorCode.NOT_FOUND, "id"); - return null; - } - PartAssembly SnapshotOfOriginalDBObj = new PartAssembly(); - 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; - } - */ - + //////////////////////////////////////////////////////////////////////////////////////////////// //UPDATE // @@ -192,8 +152,7 @@ namespace AyaNova.Biz using (var transaction = await ct.Database.BeginTransactionAsync()) { try - { - //PartAssembly dbObject = await ct.PartAssembly.SingleOrDefaultAsync(m => m.Id == id); + { PartAssembly dbObject = await GetAsync(id, false); if (dbObject == null) { @@ -242,7 +201,7 @@ namespace AyaNova.Biz public async Task GetSearchResultSummary(long id) { - var obj = await ct.PartAssembly.SingleOrDefaultAsync(z => z.Id == id); + var obj = await GetAsync(id); var SearchParams = new Search.SearchIndexProcessObjectParameters(); DigestSearchText(obj, SearchParams); return SearchParams; @@ -324,7 +283,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.PartAssembly.Where(z => batch.Contains(z.Id)).ToArrayAsync(); + var batchResults = await ct.PartAssembly.AsNoTracking().Include(z=>z.Items).Where(z => batch.Contains(z.Id)).ToArrayAsync(); //order the results back into original var orderedList = from id in batch join z in batchResults on id equals z.Id select z; foreach (PartAssembly w in orderedList) @@ -413,7 +372,7 @@ namespace AyaNova.Biz if (jobData.ContainsKey("idList")) idList = ((JArray)jobData["idList"]).ToObject>(); else - idList = await ct.PartAssembly.Select(z => z.Id).ToListAsync(); + idList = await ct.PartAssembly.AsNoTracking().Select(z => z.Id).ToListAsync(); bool SaveIt = false; foreach (long id in idList) {