public async Task <ActionResult> EditListHeader(UpdateRefListRequest req) { var result = await _refListHandler.UpdateRefListAsync(req); var vm = new EntityIdentity() { Id = result.Id, RowVersion = result.RowVersion, }; return(JsonNet(vm)); }
public async Task <EntityIdentity> UpdateRefListAsync(UpdateRefListRequest request) { var query = from l in _refsContext.RefLists.Include("TagUses.Tag").Include("TagUses.Statistics") where l.Id == request.Id select l; var storedRefList = await query.SingleOrDefaultAsync(); BusinessContract.ValidateWritePermission(storedRefList.AuthorId); BusinessContract.ValidateRowVersion(storedRefList.RowVersion, request.RowVersion); var isPublishingStatusChanged = storedRefList.PublishingStatus != request.PublishingStatus; var isPublishedInThisTime = storedRefList.PublishingStatus != PublishingStatusKind.Publish && request.PublishingStatus == PublishingStatusKind.Publish; storedRefList.Title = request.Title; storedRefList.Comment = request.Comment; storedRefList.PublishingStatus = request.PublishingStatus; if (isPublishedInThisTime) { storedRefList.PublishedDate = DateTime.Now; } await SetTagUsesAsync(storedRefList, request.TagUses, isPublishingStatusChanged); await _refsContext.SaveChangesAsync(); SendRefListUpdated(request.Id); return(new EntityIdentity() { Id = request.Id, RowVersion = storedRefList.RowVersion, }); }