public async Task Handle(RemoveBookCommand message) { var item = await _session.Get <Book>(message.Id, message.ExpectedVersion); item.Remove(message.Id); await _session.Commit(); }
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); }
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())); }
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 }); }
public void Remove(Guid id) { var removeCommand = new RemoveBookCommand(id); Bus.SendCommand(removeCommand); }