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); }
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 (); }