public async Task <Guid> Handle(CriarGarcomCommand request, CancellationToken cancellationToken) { try { if (!string.IsNullOrWhiteSpace(request.Cpf)) { request.Cpf = new Cpf(request.Cpf).ToString(); } if (!request.IsValid()) { ValidationErrors(request); return(await Task.FromResult(Guid.Empty)); } var garcom = new Garcom { Id = GeradorGuidService.GetNexGuid(), Cpf = request.Cpf, Nome = request.Nome }; _garcomRepository.Add(garcom); return(await Task.FromResult(garcom.Id)); } catch (Exception ex) { await Mediator.Publish(new DomainNotification(request.MessageType, $"Erro: {ex.Message}"), cancellationToken); return(await Task.FromResult(Guid.Empty)); } }
public async Task <Guid> Handle(CriarGarcomCommand request, CancellationToken cancellationToken) { var garcom = new Garcom(request.Nome, request.Telefone); if (_garcomRepository.PossuiNomeCadastrado(garcom)) { garcom.AddNotification("Garcom.Nome", "O nome do garcom ja esta cadastrado no banco."); } if (garcom.Invalid) { await _mediator.Publish(new DomainNotification { Erros = garcom.Notifications }, cancellationToken); return(await Task.FromResult(Guid.Empty)); } _garcomRepository.Add(garcom); return(await Task.FromResult(garcom.Id)); }