コード例 #1
0
        private Produto VerificaAlteracaoProduto(Produto produto, AlteraProdutoViewModel produtoView)
        {
            if (produto.Nome != produtoView.Nome && produtoView.Nome != null && produtoView != null)
            {
                produto.Nome = produtoView.Nome;
            }

            if (Request.Form.Files.Count > 0)
            {
                var caminho    = @"C:\Users\fic\Desktop\coo_react\coo_react\coorganicas\src\Assets";
                var pasta      = "produtos";
                var file       = Request.Form.Files[0];
                var folderName = Path.Combine(caminho, "images", pasta);
                // var pathToSave = Directory.Exists(folderName);
                var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                var fullPath = Path.Combine(folderName, fileName);
                // var dbPath = Path.Combine (folderName, fileName);

                using (var stream = new FileStream(fullPath, FileMode.Create)) {
                    file.CopyTo(stream);
                }

                produto.ImagemProduto = fileName;
            }

            return(produto);
        }
コード例 #2
0
        public async Task <ActionResult> Put(int id, [FromForm] AlteraProdutoViewModel produto)
        {
            //Se o Id do objeto não existir
            //ele retorna o erro 400

            // if (id != produto.ProdutoId) {
            //     return BadRequest ();
            // }

            if (produto.Nome == null && produto.ImagemProduto == null)
            {
                return(NoContent());
            }

            var produtoid = await _repositorio.BuscarPorID(id);

            //Comparamos os atributos que foram modificados atraves do EF
            if (produtoid == null)
            {
                return(NotFound(
                           new {
                    Mensagem = "Produto Não Encontrada",
                    Erro = true
                }
                           ));
            }
            var ProdutoAlterado = VerificaAlteracaoProduto(produtoid, produto);

            try {
                // await _repositorio.Alterar(produto);
                var ret = await _repositorio.Alterar(ProdutoAlterado);

                return(Ok(
                           new{
                    Mensagem = "Produto alterado com sucesso",
                    Erro = false
                }
                           ));
            } catch (DbUpdateConcurrencyException) {
                //Verificamos se o objeto realmente existe no banco
                var produto_valido = await _repositorio.BuscarPorID(id);

                if (produto_valido == null)
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            // NoContent = retorna o erro 204, sem nada
            // return NoContent ();
        }