Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
        }