Esempio n. 1
0
        public override async Task <bool> AfterValidation(UpdateClienteCommand request)
        {
            var cliente = await _clienteMongoRepository.GetOneAsync(x => x.Id == request.Id);

            if (cliente == null)
            {
                NotifyError($"O registro com o código {request.Id} não existe");
                return(false);
            }

            cliente.SetNome(request.Nome);
            cliente.SetIdade(request.Idade);
            cliente.AtualizarDataAlteracao();

            await _clienteSqlServerRepository.InsertOrUpdateAsync(cliente);

            if (!HasNotification() && _unitOfWork.CommitAsync().Result)
            {
                await _mediator.RaiseEvent(new UpdatedClienteEvent(cliente));

                return(true);
            }
            else
            {
                NotifyError("Commit", "Tivemos um problema ao tentar salvar seus dados.");
                return(false);
            }
        }
Esempio n. 2
0
        public override async Task <bool> AfterValidation(AddClienteCommand request)
        {
            var registered = await _clienteSqlServerRepository
                             .ExistsByExpressionAsync(x => x.Email == request.Email);

            if (registered)
            {
                NotifyError("O registro já existe");
                return(false);
            }

            Cliente cliente = new Cliente();

            cliente.SetId(Guid.NewGuid());
            cliente.SetNome(request.Nome);
            cliente.SetEmail(request.Email);
            cliente.SetIdade(request.Idade);
            cliente.SetSenha(request.Senha.GetSha1Hash());

            await _clienteSqlServerRepository.InsertOrUpdateAsync(cliente);

            if (!HasNotification() && _unitOfWork.CommitAsync().Result)
            {
                await _mediator.RaiseEvent(new AddedClienteEvent(cliente));

                return(true);
            }
            else
            {
                NotifyError("Commit", "Tivemos um problema ao tentar salvar seus dados.");
                return(false);
            }
        }