コード例 #1
0
        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));
        }
コード例 #2
0
        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,
            });
        }