public override async Task <Produto> Inserir(Produto produto) { if (!ExecutarValidacao(new ProdutoValidation(), produto)) { return(null); } // Não permitimos que dois produtos sejam cadastrados com o mesmo nome if (await _produtoRepository.VerificarExistencia(produto.Nome)) { Notificar($"Já existe um produto cadastrado com o nome '{produto.Nome}'"); return(null); } var transaction = await _geekStoreDbContextService.CreateTransaction(); #region Persistindo imagem no FileServer if (produto.Imagem != null) { await _fileServerService.SalvarImagem(produto.Imagem); } #endregion await _produtoRepository.InsertAndSave(produto); _geekStoreDbContextService.Commit(transaction); return(produto); }