Ejemplo n.º 1
0
        public override async Task Adicionar(TransacaoEntity entity)
        {
            //validar o estado da entidade
            if (!ExecutarValidacao(new TransacaoValidation(), entity))
            {
                return;
            }

            entity.ContaOrigem = await _contaService.ValidarAptidaoContaOrigemTransacao(entity.ContaOrigem.Agencia, entity.ContaOrigem.Numero, entity.ContaOrigem.Digito, entity.Valor);

            if (_notificador.TemNotificacao())
            {
                return;
            }

            entity.ContaDestino = await _contaService.ValidarAptidaoContaDestinoTransacao(entity.ContaDestino.Agencia, entity.ContaDestino.Numero, entity.ContaDestino.Digito, entity.Valor);

            if (_notificador.TemNotificacao())
            {
                return;
            }

            if (entity.ContaOrigem.Id == entity.ContaDestino.Id)
            {
                Notificar("Não é permitido fazer transação entre contas iguais");
                return;
            }

            if (_notificador.TemNotificacao())
            {
                return;
            }

            await _transacaoRepository.Adicionar(entity);
        }
Ejemplo n.º 2
0
        public async Task Adicionar_Produto_Com_Propriedades_Invalidas()
        {
            // Arrange
            Produto produto = ObterInstanciaProduto();

            produto.Id        = Guid.Empty;
            produto.Descricao = "X";
            produto.Nome      = string.Empty;

            int    qntNotificacoesEsperadas = 4;
            string msgErroIdEsperada        = $"O campo {nameof(produto.Id)} não pode ser vazio";
            string msgErroNomeEsperada      = $"O campo {nameof(produto.Nome)} precisa ser fornecido";
            string msgErroNomeEsperada2     = $"O campo {nameof(produto.Nome)} precisa ter entre 2 e 200 caracteres";
            string msgErroDescricaoEsperada = $"O campo {nameof(produto.Descricao)} precisa ter entre 2 e 1000 caracteres";

            var msgErrosEsperadas = new string[] { msgErroIdEsperada, msgErroNomeEsperada, msgErroNomeEsperada2, msgErroDescricaoEsperada };

            // Act
            await _sut.Adicionar(produto);

            // Assert
            var notificacoes = _notificador.ObterNotificacoes();

            Assert.True(_notificador.TemNotificacao());
            Assert.NotEmpty(notificacoes);
            Assert.Equal(qntNotificacoesEsperadas, notificacoes.Count);
            Assert.Equal(msgErrosEsperadas, notificacoes.Select(n => n.Mensagem));
        }
        public async Task Adicionar_Fornecedor_Com_Propriedade_Invalida()
        {
            // Arrange
            Fornecedor fornecedor = ObterInstanciaFornecedor();

            fornecedor.Id = Guid.Empty;

            // Act
            await _sut.Adicionar(fornecedor);

            // Assert
            Assert.True(_notificador.TemNotificacao());
        }
Ejemplo n.º 4
0
        public bool Commit()
        {
            if (_notificador.TemNotificacao())
            {
                return(false);
            }

            _unitOfWork.Commit();
            return(true);
        }
Ejemplo n.º 5
0
        protected ActionResult Result(object obj = null)
        {
            if (!_notificador.TemNotificacao())
            {
                return(Ok(new
                {
                    sucesso = true,
                    data = obj
                }));
            }

            return(BadRequest(new
            {
                sucesso = false,
                erros = _notificador.ObterNotificacoes().Select(n => n.Mensagem)
            }));
        }
Ejemplo n.º 6
0
        public IActionResult Errors(int id)
        {
            var modelErro = new ErrorViewModel();

            if (id == 500)
            {
                modelErro.Titulo   = "Ocorreu um erro!";
                modelErro.ErroCode = id;

                if (_notificador.TemNotificacao())
                {
                    foreach (var item in _notificador.ObterNotificaoes())
                    {
                        modelErro.Mensagem = item.Mensagem;
                    }
                }
                else
                {
                    modelErro.Mensagem = "Ocorreu um erro! Tente novamente mais tarde ou contate nosso suporte.";
                }
            }
            else if (id == 404)
            {
                modelErro.Mensagem = "A página que está procurando não existe! <br />Em caso de dúvidas entre em contato com nosso suporte";
                modelErro.Titulo   = "Ops! Página não encontrada.";
                modelErro.ErroCode = id;
            }
            else if (id == 403)
            {
                modelErro.Mensagem = "Você não tem permissão para fazer isto.";
                modelErro.Titulo   = "Acesso Negado";
                modelErro.ErroCode = id;
            }
            else
            {
                return(StatusCode(500));
            }

            return(View("Error", modelErro));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> DeleteConfirmed(Guid id)
        {
            var fornecedorViewModel = await ObterFornecedorEndereco(id);

            if (fornecedorViewModel == null)
            {
                return(NotFound());
            }

            await _fornecedorService.Remover(id);

            if (!OperacaoValida())
            {
                if (_notificador.TemNotificacao())
                {
                    foreach (var item in _notificador.ObterNotificacoes())
                    {
                        TempData["Erro"] = item.Mensagem;
                    }
                }
            }

            return(RedirectToAction(nameof(Index)));
        }
Ejemplo n.º 8
0
 protected bool OperacaoValida()
 {
     return(!_notificador.TemNotificacao());
 }
Ejemplo n.º 9
0
 private bool OperacaoValida()
 {
     return(!_notificadorMemory.TemNotificacao());
 }
Ejemplo n.º 10
0
 protected bool OperacaoValida()
 {
     return(!_notificador.TemNotificacao());//! se nao tem notificação.. deu bom!
 }
Ejemplo n.º 11
0
 public bool OperacaoValida()
 {
     return(!_notificador.TemNotificacao());
 }
 protected bool IsValidOperation()
 {
     return(!_notificador.TemNotificacao());
 }
Ejemplo n.º 13
0
 protected bool TemNotificacoes()
 {
     return(_notificador.TemNotificacao());
 }
Ejemplo n.º 14
0
 protected bool OperacaoValida()
 {
     //Sempre deve ser a negação do tem notificação
     return(!_notificador.TemNotificacao());
 }
Ejemplo n.º 15
0
 protected bool OperacaoValida() => !_notificador.TemNotificacao();
Ejemplo n.º 16
0
        public async Task <DTOPedidosResultado> Adicionar(DTOPedidos pedido)
        {
            //Objeto tamanho
            var tamanho = await _tamanhos.ObterPorId(pedido.Tamanho);

            //Objeto sabores
            var sabor = await _sabores.ObterPorId(pedido.Sabor);

            if (tamanho == null)
            {
                Notificar($"Tamanho {pedido.Tamanho} não localizado.");
            }
            if (sabor == null)
            {
                Notificar($"Sabor {pedido.Sabor} não localizado.");
            }

            if (_notificador.TemNotificacao())
            {
                return(null);
            }
            //Objeto pedido
            var objPedido = new Pedidos
            {
                Cliente      = string.Empty,
                DtPedido     = DateTime.Now,
                SaboresId    = sabor.Id,
                TempoSabor   = sabor.TempoPreparo,
                ValorSabor   = sabor.Valor,
                TamanhosId   = tamanho.Id,
                TempoTamanho = tamanho.TempoPreparo,
                ValorTamanho = tamanho.Valor
            };
            var add = await _pedidos.Adicionar(objPedido);

            pedido.Id = add.Id;

            var personalizacoes = new List <DetalhesPersonalizacao>();

            //Adicionar personalizacao
            if (pedido.Personalizacoes.Count > 0)
            {
                personalizacoes = await AdicionarPersonalizacoes(pedido);
            }

            var tam = new DetalhesTamanho
            {
                Descricao    = tamanho.Descricao,
                Id           = add.Tamanhos.Id,
                TempoPreparo = add.TempoTamanho,
                Valor        = add.ValorTamanho
            };
            var sab = new DetalhesSabor
            {
                Descricao    = sabor.Descricao,
                Id           = add.Sabores.Id,
                TempoPreparo = add.TempoSabor,
                Valor        = add.ValorSabor
            };

            var resultado = GerarResultado(tam, sab, personalizacoes);

            resultado.Id = pedido.Id;
            return(resultado);
        }
Ejemplo n.º 17
0
 protected bool OperacaoValida()
 {
     return(!_notificador.TemNotificacao() || _notificador.ObterNotificacoes().TrueForAll(x => x.Sucesso == 2));
 }
Ejemplo n.º 18
0
 public bool HaNotificacoes()
 {
     return(_notificador.TemNotificacao());
 }