예제 #1
0
        public async Task <Guid> AdicionarProdutoAsync(ProdutoRequest request)
        {
            var produto = _mapper.Map <Domain.Produto>(request);

            _produtoRepository.Adicionar(produto);

            await _produtoRepository.UnitOfWork.Commit();

            _ = _cache.RemoveAsync("produto:ObterTodosAsync");

            return(produto.Id);
        }
예제 #2
0
        public async Task AdicionarProduto(ProdutoViewModel produtoViewModel)
        {
            var produto = _mapper.Map <Produto>(produtoViewModel);

            _produtoRepository.Adicionar(produto);
            await _produtoRepository.UnitOfWork.Commit();
        }
        public Produto CriarProduto([FromBody] Produto produto)
        {
            _produtoRepository.Adicionar(produto);
            _uow.Commit();

            return(produto);
        }
예제 #4
0
        public async Task <IActionResult> Create(ProdutoViewModel produtoViewModel)
        {
            //Primeiro vamos validar a ViewModel, pois se houver algum erro, precisamos devolver ela já com os fornecedores populados para que o usuário possa recriar.

            produtoViewModel = await PopularFornecedores(produtoViewModel);

            if (!ModelState.IsValid)
            {
                return(View(produtoViewModel));
            }

            var imgPrefixo = Guid.NewGuid() + "_";

            if (!await UploadArquivo(produtoViewModel.ImagemUpload, imgPrefixo))
            {
                return(View(produtoViewModel));//Se o UploadArquvio não retornar true, retorna com o erro de adicionar a img pro usuário.
            }

            produtoViewModel.Imagem = imgPrefixo + produtoViewModel.ImagemUpload.FileName;

            await _produtoRepository.Adicionar(_mapper.Map <Produto>(produtoViewModel));

            return(RedirectToAction("Index"));
            //Este é provisório, ou seja, ta certo só que vamos  melhorar mais a frente, implementar upload de imagem etc..
        }
예제 #5
0
        public IActionResult Post([FromBody] Produto produto)
        {
            try
            {
                produto.Validate();
                if (!produto.EhValido)
                {
                    return(BadRequest(produto.ObterMensagensValidacao()));
                }
                if (produto.Id > 0)
                {
                    _produtoRepositorio.Atualizar(produto);
                }
                else
                {
                    _produtoRepositorio.Adicionar(produto);
                }

                return(Created("api/produto", produto));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
        public async Task <IActionResult> Create(ProdutoViewModel produtoViewModel)
        {
            produtoViewModel = await PopularFornecedores(produtoViewModel);

            if (!ModelState.IsValid)
            {
                return(View(produtoViewModel));
            }

            var imgPrefixo = Guid.NewGuid() + "_"; //garante que a imagem seja única (unico nome)

            if (!await UploadArquivo(produtoViewModel.ImagemUpload, imgPrefixo))
            {
                return(View(produtoViewModel));
            }

            //setando o nome da prop Imagem, pois é o campo que é persistido no banco de dados
            produtoViewModel.Imagem = imgPrefixo + produtoViewModel.ImagemUpload.FileName;

            await _produtoRepository.Adicionar(_mapper.Map <Produto>(produtoViewModel));

            return(RedirectToAction(nameof(Index)));

            //ViewData["FornecedorId"] = new SelectList(_context.Set<FornecedorViewModel>(), "Id", "Documento", produtoViewModel.FornecedorId);
        }
예제 #7
0
        public IActionResult Post([FromForm] Produto produto)
        {
            try
            {
                if (produto.Imagem != null)
                {
                    //Gera o nome do arquivo unico
                    //Pego a extensao do arquivo
                    //Contateno o nome do arquivo com sua extensao
                    var nomeArquivo = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(produto.Imagem.FileName);

                    //GetCurrentDirectory - peg ao caminho do diretorio atual
                    var caminhoarquivo = Path.Combine(Directory.GetCurrentDirectory(), @"wwwRoot\Upload\Imagens", nomeArquivo);

                    //Cria um objeto do tipo filestream passando o caminho do arquivo

                    using var streamImagen = new FileStream(caminhoarquivo, FileMode.Create);

                    //executo o comando de criaçao no arquivo do local informado
                    produto.Imagem.CopyTo(streamImagen);

                    produto.UrlImagem =
                }
                ;


                _produtoRepository.Adicionar(produto);

                return(Ok(produto));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public IActionResult Post([FromForm] Produto produto)
        {
            try
            {
                //Verifico se foi enviado um arquivo com a imagem
                if (produto.Imagem != null)
                {
                    var urlImagem = Upload.Local(produto.Imagem);

                    produto.UrlImagem = urlImagem;
                }

                //Adiciona um produto
                _produtoRepository.Adicionar(produto);

                //retorna ok com os dados do produto
                return(Ok(produto));
            }
            catch (Exception ex)
            {
                //Caso ocorra um erro retorna BadRequest com a mensagem
                //de erro
                return(BadRequest(ex.Message));
            }
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                produto = new Produto();

                Fornecedor fornecedor = new Fornecedor();

                var fornecedorSelecionado = (Fornecedor)cboFornecedor.SelectedValue;

                produto.Descricao   = txtDescricao.Text;
                produto.QntdEstoque = Convert.ToInt16(txtQuantidade.Text);
                produto.Valor       = Convert.ToDouble(txtValor.Text);
                //produto.Fornecedor = fornecedor.BuscarPorId(fornecedorSelecionado.Id);

                produtoRepository.Adicionar(produto);
                produtoRepository.Salvar();

                MessageBox.Show("Salvo com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                LimparCampos();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Algo deu errado. Tente novamente mais tarde ou contate o administrador. \n\n\nDetalhes: \n" + ex.Message, "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #10
0
        public ActionResult <Produto> AdicionarProduto(ProdutoAdicionarViewModel produtoVM)
        {
            var prd = _mapper.Map <Produto>(produtoVM);

            /*
             * Produto produto = new Produto();
             * produto.Descricao = produtoVM.Descricao;
             * produto.Valor = produtoVM.Valor;
             */

            ValidationResult resultadoValidacao = new ProdutoValidation().Validate(prd);

            if (!resultadoValidacao.IsValid)
            {
                return(BadRequest(new
                {
                    erro = resultadoValidacao.Errors.Select(a => a.ErrorMessage)
                }));
            }
            else
            {
                _produtoRepository.Adicionar(prd);
                return(Created(nameof(AdicionarProduto), new { IdCadastrado = prd.Id }));
            }
        }
예제 #11
0
        public IActionResult Post([FromForm] Produto produto)
        {
            try
            {
                if (produto.Imagem != null)
                {
                    var nomeArquivo = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(produto.Imagem.FileName);

                    var caminhoArquivo = Path.Combine(Directory.GetCurrentDirectory(), @"wwwRoot\upload\imagens", nomeArquivo);

                    using var streamImagem = new FileStream(caminhoArquivo, FileMode.Create);

                    produto.Imagem.CopyTo(streamImagem);

                    produto.UrlImagem = "https://localhost:44354/uploas/imagens" + nomeArquivo;
                }

                //Adiciona um novo produto
                _produtoRepository.Adicionar(produto);

                //Retorna mensgame se for cadstrado
                return(Ok(produto));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
예제 #12
0
        public async Task Adicionar(ProdutoViewModel produto)
        {
            var produtoModel = _mapper.Map <Produto>(produto);

            if (!ExecutarValidacao(new ProdutoValidation(), produtoModel))
            {
                return;
            }

            if (!ValidateNameExists(produtoModel.Nome, produtoModel.Id))
            {
                Notificar("Este nome já pertence a outro produto!");
                return;
            }

            if (!ValidateSKUExists(produtoModel.Sku))
            {
                Notificar("Este código de produto já está cadastrado!");
                return;
            }

            await _produtoRepository.Adicionar(produtoModel);

            await _produtoServiceBus.AdicionarProduto(produtoModel);
        }
예제 #13
0
 public async Task Adicionar(Produto entity)
 {
     //Validar
     //if (!ExecutarValidacao(new ProdutoValidation(), entity)) return;
     //Executar
     await _ProdutoRepository.Adicionar(entity);
 }
 public async Task Adicionar(Produto produto)
 {
     if (!ExecutarValidacao(new ProdutoValidation(), produto))
     {
         return;
     }
     await _produtoRepository.Adicionar(produto);
 }
예제 #15
0
        public IActionResult Adicionar(ProdutoDTO dto)
        {
            var aggregate = new Produto(dto.Id, dto.Nome, dto.ValorDeVenda, dto.Imagem);

            _repository.Adicionar(aggregate);

            return(Ok());
        }
예제 #16
0
 public void Adicionar(Produto produto)
 {
     if (produto is null)
     {
         throw new Exception("Nenhum produto para adicionar.");
     }
     _produtoRepository.Adicionar(produto);
     _produtoRepository.SalvarAlteracoes();
 }
예제 #17
0
        public async Task Adicionar(Produto produto)
        {
            if (!ExecutarValidacao(new ProdutoValidation(), produto)) return;

            //obtendo o id do usuário auntenticado ao adicionar produto
            var user = _user.GetUserId();

            await _produtoRepository.Adicionar(produto);
        }
예제 #18
0
        public ActionResult Adicionar(Produto produto)
        {
            string    categoriaId = Request.Form["Categorias"];
            Categoria categoria   = _repositorioCategoria.Categorias.FirstOrDefault(c => c.Id == Guid.Parse(categoriaId));

            produto.Categoria = categoria;
            _repositorio.Adicionar(produto);

            return(RedirectToAction("Index"));
        }
예제 #19
0
        public async Task <bool> Adicionar(Produto produto)
        {
            if (!ExecutarValidacao(new ProdutoValidation(), produto))
            {
                return(false);
            }
            await _produtoRepository.Adicionar(produto);

            return(true);
        }
예제 #20
0
        public IActionResult Adicionar(Produto p)
        {
            if (p == null)
            {
                BadRequest("Você deve criar um produto");
            }

            _repo.Adicionar(p);
            return(Ok());
        }
예제 #21
0
        public async Task <ActionResult <ProdutoViewModel> > Adicionar(ProdutoViewModel produtoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            var imagemNome = Guid.NewGuid() + "_" + produtoViewModel.Imagem;

            if (!UpdateArquivo(produtoViewModel.ImagemUpload, imagemNome))
            {
                return(CustomResponse());
            }

            produtoViewModel.Imagem = imagemNome;
            await _produtoRepository.Adicionar(_mapper.Map <Produto>(produtoViewModel));

            return(CustomResponse(produtoViewModel));
        }
예제 #22
0
        public async Task <IActionResult> Create(ProdutoViewModel produtoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(produtoViewModel));
            }
            var produto = _mapper.Map <Produto>(produtoViewModel);
            await _produtoRepository.Adicionar(produto);

            return(RedirectToAction(nameof(Index)));
        }
예제 #23
0
        public async Task Adicionar(Produto produto)
        {
            if (!ExectuarValidacao(new ProdutoValidation(), produto))
            {
                return;
            }

            //var user = _user.GetUserId(); //se eu quiser receber dados do usuário por algum motivo

            await _produtoRepository.Adicionar(produto);
        }
예제 #24
0
        public async Task Adicionar(Produto produto)
        {
            if (!ExecutarValidacao(new ProdutoValidation(), produto))
            {
                return;
            }

            var user = _user.GetUserId();

            await _produtoRepository.Adicionar(produto);
        }
        public async Task <ActionResult <ProdutoViewModel> > Adicionar(ProdutoViewModel produtoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _produtoRepositorio.Adicionar(_mapper.Map <Produto>(produtoViewModel));

            return(CustomResponse(ModelState));
        }
예제 #26
0
 public IActionResult Post([FromBody] Produto produto)
 {
     try
     {
         _produtoRepository.Adicionar(produto);
         return(Created("api/produto", produto));
     }catch (Exception e)
     {
         return(BadRequest(e.ToString()));
     }
 }
예제 #27
0
 public ActionResult Post([FromBody] Produto prod)
 {
     try
     {
         _produtoRepository.Adicionar(prod);
         return(Created("api/produto", prod));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
예제 #28
0
        public async Task Adicionar(Produto obj)
        {
            if (!obj.EhValido())
            {
                Notificar(obj.ValidationResult);
                return;
            }

            await _produtoRepository.Adicionar(obj);

            await _UoW.Commit();
        }
예제 #29
0
        public async Task <IActionResult> Create(ProdutoViewModel produtoViewModel)
        {
            produtoViewModel = await PopularFornecedores(produtoViewModel);

            if (!ModelState.IsValid)
            {
                return(View(produtoViewModel));
            }
            await _produtoRepository.Adicionar(_mapper.Map <Produto>(produtoViewModel));

            return(View(produtoViewModel));
        }
예제 #30
0
        public async Task <IActionResult> Create(ProdutoViewComponent produtoViewComponent)
        {
            if (!ModelState.IsValid)
            {
                return(View(produtoViewComponent));
            }

            var produto = _mapper.Map <Produto>(produtoViewComponent);
            await _produtoRepository.Adicionar(produto);

            return(RedirectToAction("Index"));
        }