Example #1
0
        public async Task <MessageOutputBase> UpdatePublished([FromBody] UpdatePublishedRequest request)
        {
            MessageOutputBase result = null;

            request.UserName = GetCurrentUser();
            await Execute(flow =>
            {
                flow.StartRegisterFlow()
                .Add <CheckUserExistsStep>()
                .Add <CheckUserListExistsStep>()
                .Add <UpdatePublishedStep>();

                flow.
                When <UserNotFoundStep, UserNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .
                When <UserListNotFoundStep, UserListNotFoundParams>(notFound =>
                {
                    result = notFound.Response;
                })
                .When <UpdatePublishedStep, UpdatePublishedParams>(update =>
                {
                    result = update.Response;
                });
            }, request,
                          error =>
            {
                result = error;
            });

            return(result);
        }
Example #2
0
        public override async Task <Reply> UpdatePublished(UpdatePublishedRequest request, ServerCallContext context)
        {
            var reply = new Reply();
            var user  = await _userService.GetUser(context.GetHttpContext());

            if (user == null)
            {
                reply.Error = Error.NeedLogin;
                return(reply);
            }

            if (!user.HasWritePermission())
            {
                reply.Error = Error.NoPermission;
                return(reply);
            }

            if (!Guid.TryParse(request.Id, out var id))
            {
                reply.Error = Error.InvalidArguments;
                return(reply);
            }

            var item = await _service.All().Where(i => i.Id == id).Include(i => i.FileTags).ThenInclude(t => t.Tag)
                       .FirstOrDefaultAsync();

            if (item == null)
            {
                reply.Error = Error.NoSuchEntity;
                return(reply);
            }

            item.Published = request.Published.ToDateTime().ToUniversalTime();
            await _service.Update(item);

            return(reply);
        }