Beispiel #1
0
        public async Task Handle(RemoveBookCommand message)
        {
            var item = await _session.Get <Book>(message.Id, message.ExpectedVersion);

            item.Remove(message.Id);
            await _session.Commit();
        }
Beispiel #2
0
        private bool AuthorizeDeleteBook(RemoveBookCommand command)
        {
            var IsAdmin        = command.Roles.Where(r => r == "admin").Any();
            var IsAuthorOfBook = bookRepo.FindByExpression(b => b.Id == command.BookId && b.AuthorId == command.Userid).Any();

            return(IsAdmin || IsAuthorOfBook);
        }
Beispiel #3
0
        public Task <bool> Handle(RemoveBookCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            _bookRepository.Remove(message.Id);

            return(Task.FromResult(Commit()));
        }
Beispiel #4
0
        public async Task <Response <bool> > Handle(RemoveBookCommand request, CancellationToken cancellationToken)
        {
            if (AuthorizeDeleteBook(request))
            {
                var findBook = await bookRepo.GetByIdAsync(request.BookId);

                await bookRepo.Remove(findBook);

                return(Response.Ok());
            }
            return(Response.Fail <bool>("شما اجازه این کار را ندارید", StatusCodeEnum.NOTAUTHORIZE));
        }
        public async Task <RemoveBookCommandResponse> RemoveBook(RemoveBookCommand request)
        {
            var book = await _bookDbContext.Books.FirstOrDefaultAsync(x => x.Id == request.Id);

            if (book is not null)
            {
                _bookDbContext.Entry(book).State = EntityState.Deleted;
                await _bookDbContext.SaveChangesAsync();

                return(new RemoveBookCommandResponse
                {
                    Deleted = true
                });
            }

            return(new RemoveBookCommandResponse
            {
                Deleted = false
            });
        }
Beispiel #6
0
        public void Remove(Guid id)
        {
            var removeCommand = new RemoveBookCommand(id);

            Bus.SendCommand(removeCommand);
        }