public async Task <IActionResult> PostProduto(ProdutoModelo produtoModelo)
        {
            try
            {
                NewLog(nameof(PostProduto), 0);
                var produto = _mapper.Map <Produto>(produtoModelo);
                produto.DataCadastro = DateTime.Now;
                produto.CategoriaId  = produto.Categoria.Id;
                produto.Categoria    = null;

                NewLog(nameof(PostProduto), 3, "iniciando metodo adicionar repositorio");
                if (await _repositorio.AdicionarAsync(produto))
                {
                    NewLog(nameof(PostProduto), 3, "Adicionado com sucesso, fazendo o mapeamento.");
                    var produtoModeloRetorno = _mapper.Map <ProdutoModelo>(produto);

                    NewLog(nameof(PostProduto), 1);
                    return(CreatedAtAction("GetProduto", new { id = produto.Id }, produtoModeloRetorno));
                }

                NewLog(nameof(PostProduto), 2, "Metodo adicionar repositorio retornou false");
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(ErrorException(ex, nameof(PostProduto)));
            }
        }