public async Task <PromocaoDTO> Adicionar(PromocaoDTO promocaoDTO)
        {
            if (await _unitOfWork.Promocao.ExisteAsync(x => x.Descricao == promocaoDTO.Descricao))
            {
                Notificar(ValidationMessage.RegistroJaExistente(nameof(promocaoDTO.Descricao)));
                return(null);
            }
            _unitOfWork.BeginTransaction();
            await _unitOfWork.Promocao.AdicionarAsync(_mapper.Map <Promocao>(promocaoDTO));

            _unitOfWork.CommitTransaction();
            return(promocaoDTO);
        }
        public async Task <PedidoDTO> Adicionar(PedidoDTO pedidoDTO)
        {
            if (await _unitOfWork.Pedido.ExisteAsync(p => p.Id == pedidoDTO.Id))
            {
                Notificar(ValidationMessage.RegistroJaExistente(nameof(pedidoDTO.Id)));
                return(null);
            }

            _unitOfWork.BeginTransaction();
            await _unitOfWork.Pedido.AdicionarAsync(
                _mapper.Map <Pedido>(await AtualizarValorPedido(pedidoDTO)));

            _unitOfWork.CommitTransaction();
            return(pedidoDTO);
        }
        public async Task <ProdutoDTO> Adicionar(ProdutoDTO produtoDTO)
        {
            if (!ExecutarValidacao(new ProdutoValidator(), produtoDTO))
            {
                return(null);
            }

            if (produtoDTO.Id > 0 || (await _unitOfWork.Produto.ExisteAsync(x => x.Id == produtoDTO.Id)))
            {
                Notificar(ValidationMessage.RegistroJaExistente(nameof(produtoDTO.Id)));
                return(null);
            }
            _unitOfWork.BeginTransaction();
            await _unitOfWork.Produto.AdicionarAsync(_mapper.Map <Produto>(produtoDTO));

            _unitOfWork.CommitTransaction();
            return(produtoDTO);
        }