public LivroValidacaoExclusao(ILivroRepositorio livroRepositorio) { _livroRepositorio = livroRepositorio; RuleFor(x => x) .NotNull() .WithMessage("Não é possível excluir um livro sem informar o ID.") .DependentRules(() => { RuleFor(x => x.Id).MustAsync(async(id, cancellation) => { var livroExistente = await _livroRepositorio.SelecionarPorId(id); if (livroExistente != null) { return(true); } return(false); }).WithMessage("Esse livro não existe na aplicação. O ID informado pode estar incorreto."); }); }
//Queries public async Task <LivroViewModel> SelecionarPorId(int idLivro) { var livro = await _livroRepositorio.SelecionarPorId(idLivro); return(_mapper.Map <LivroViewModel>(livro)); }