public async Task <ValidationResult> Handle(AddConvenioCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { return(request.ValidationResult); } var convenio = new Models.Convenio(Guid.NewGuid(), request.Nome); if (await _convenioRepository.GetByName(request.Nome) != null) { AddError("Já existe convênio com esse nome"); return(ValidationResult); } convenio.AddDomainEvent(new ConvenioAddedEvent(convenio.Id, convenio.Nome)); _convenioRepository.Add(convenio); return(await Commit(_convenioRepository.UnitOfWork)); }
public async Task <ValidationResult> Handle(UpdateConvenioCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { return(request.ValidationResult); } var convenio = new Models.Convenio(request.Id, request.Nome); var existing = await _convenioRepository.GetByName(convenio.Nome); if (existing != null && existing.Id != convenio.Id) { AddError("Já existe convênio com esse nome."); return(ValidationResult); } convenio.AddDomainEvent(new ConvenioUpdatedEvent(convenio.Id, convenio.Nome)); _convenioRepository.Update(convenio); return(await Commit(_convenioRepository.UnitOfWork)); }