예제 #1
0
        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);
        }