public async Task <ValidationResult> Handle(UpdateCategoriaCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } var categoria = new Categoria(message.Id, message.Descricao); var existingCategoria = await _categoriaRepository.GetByName(categoria.Descricao); if (existingCategoria != null && existingCategoria.Id != categoria.Id) { if (!existingCategoria.Equals(categoria)) { AddError("A Categoria já foi atualizada"); return(ValidationResult); } } categoria.AddDomainEvent(new CategoriaUpdatedEvent(categoria.Id, categoria.Descricao)); _categoriaRepository.Update(categoria); return(await Commit(_categoriaRepository.UnitOfWork)); }
public Task <bool> Handle(UpdateCategoriaCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var categoria = new Categoria(message.Id, message.Nome, message.Descricao); var categoriaExiste = _categoriaRepository.GetByDescricao(categoria.Descricao); if (categoriaExiste != null && categoriaExiste.Id != categoria.Id) { if (!categoriaExiste.Equals(categoria)) { Bus.RaiseEvent(new DomainNotification(message.MessageType, "A Categria cliente já foi recebido.")); return(Task.FromResult(false)); } } _categoriaRepository.Update(categoria); if (Commit()) { Bus.RaiseEvent(new CategoriaUpdatedEvent(categoria.Id, categoria.Nome, categoria.Descricao)); } return(Task.FromResult(true)); }