This commit is contained in:
@@ -93,7 +93,7 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<Contract> GetAsync(long id, bool logTheGetEvent = true)
|
||||
{
|
||||
var ret = await ct.Contract.SingleOrDefaultAsync(m => m.Id == id);
|
||||
var ret = await ct.Contract.AsNoTracking().SingleOrDefaultAsync(m => m.Id == id);
|
||||
if (logTheGetEvent && ret != null)
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
|
||||
return ret;
|
||||
@@ -104,20 +104,18 @@ namespace AyaNova.Biz
|
||||
//
|
||||
internal async Task<Contract> PutAsync(Contract putObject)
|
||||
{
|
||||
Contract dbObject = await ct.Contract.SingleOrDefaultAsync(m => m.Id == putObject.Id);
|
||||
Contract dbObject = await GetAsync(putObject.Id,false);
|
||||
if (dbObject == null)
|
||||
{
|
||||
AddError(ApiErrorCode.NOT_FOUND, "id");
|
||||
return null;
|
||||
}
|
||||
Contract SnapshotOfOriginalDBObj = new Contract();
|
||||
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;
|
||||
|
||||
putObject.Tags = TagBiz.NormalizeTags(dbObject.Tags);
|
||||
putObject.CustomFields = JsonUtil.CompactJson(dbObject.CustomFields);
|
||||
await ValidateAsync(putObject, dbObject);
|
||||
if (HasErrors) return null;
|
||||
ct.Replace(dbObject, putObject);
|
||||
try
|
||||
{
|
||||
await ct.SaveChangesAsync();
|
||||
@@ -130,10 +128,10 @@ namespace AyaNova.Biz
|
||||
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);
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct);
|
||||
await SearchIndexAsync(putObject, false);
|
||||
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
|
||||
await HandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
|
||||
return dbObject;
|
||||
}
|
||||
|
||||
@@ -146,7 +144,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
try
|
||||
{
|
||||
Contract dbObject = await ct.Contract.SingleOrDefaultAsync(m => m.Id == id);
|
||||
Contract dbObject = await GetAsync(id, false);
|
||||
if (dbObject == null){
|
||||
AddError(ApiErrorCode.NOT_FOUND);
|
||||
return false;
|
||||
@@ -191,7 +189,7 @@ namespace AyaNova.Biz
|
||||
|
||||
public async Task<Search.SearchIndexProcessObjectParameters> GetSearchResultSummary(long id)
|
||||
{
|
||||
var obj = await ct.Contract.SingleOrDefaultAsync(z => z.Id == id);
|
||||
var obj = await GetAsync(id, false);
|
||||
var SearchParams = new Search.SearchIndexProcessObjectParameters();
|
||||
DigestSearchText(obj,SearchParams);
|
||||
return SearchParams;
|
||||
|
||||
Reference in New Issue
Block a user