public async Task <IActionResult> Create([FromForm] ItemPedidoModel itemPedido) { if (ModelState.IsValid) { if (itemPedido.IdPedido > 0) { var produto = await _context.Produtos.FindAsync(itemPedido.IdProduto); itemPedido.ValorUnitario = produto.Valor; if (ItemPedidoExiste(itemPedido.IdPedido, itemPedido.IdProduto)) { _context.ItensPedidos.Update(itemPedido); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Item de pedido alterado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar item de pedido.", TipoMensagem.Erro); } } else { _context.ItensPedidos.Add(itemPedido); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Item de pedido cadastrado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar item de pedido.", TipoMensagem.Erro); } } var pedido = await _context.Pedidos.FindAsync(itemPedido.IdPedido); pedido.ValorTotal = _context.ItensPedidos .Where(i => i.IdPedido == itemPedido.IdPedido) .Sum(i => i.ValorUnitario * i.Quantidade); await _context.SaveChangesAsync(); return(RedirectToAction("Index", new { ped = itemPedido.IdPedido })); } else { TempData["mensagem"] = MensagemModel.Serializar("Pedido não informado.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } } else { var produtos = _context.Produtos .OrderBy(x => x.Nome) .Select(p => new { p.IdProduto, NomePreco = $"{p.Nome} ({p.Valor:C})" }) .AsNoTracking().ToList(); var produtosSelectList = new SelectList(produtos, "IdProduto", "NomePreco"); ViewBag.Produtos = produtosSelectList; return(View(itemPedido)); } }
public async Task <IActionResult> Create(int?id, [FromForm] ProdutoModel produto) { string wwwwRootPath = _hostEnvironment.WebRootPath; string fileName = Path.GetFileNameWithoutExtension(produto.ImageFile.FileName); string extension = Path.GetExtension(produto.ImageFile.FileName); produto.ImageName = fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension; string path = Path.Combine(wwwwRootPath + "/Image/", fileName); using (var fileStream = new FileStream(path, FileMode.Create)) if (ModelState.IsValid) { // upload save image to wwwroot/image { await produto.ImageFile.CopyToAsync(fileStream); } if (id.HasValue) { if (ProdutoExiste(id.Value)) { _context.Produtos.Update(produto); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Produto alterado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar produto.", TipoMensagem.Erro); } } else { TempData["mensagem"] = MensagemModel.Serializar("Produto não encontrado.", TipoMensagem.Erro); } } else { _context.Produtos.Add(produto); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Produto cadastrado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar produto.", TipoMensagem.Erro); } } return(RedirectToAction(nameof(Index))); } else { return(View(produto)); } }
public async Task <IActionResult> Create(int?id, [FromForm] ClienteModel cliente) { if (ModelState.IsValid) { if (id.HasValue) { if (ClienteExiste(id.Value)) { _context.Clientes.Update(cliente); _context.Entry(cliente).Property(x => x.Senha).IsModified = false; if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Cliente alterado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar cliente.", TipoMensagem.Erro); } } else { TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado.", TipoMensagem.Erro); } } else { _context.Clientes.Add(cliente); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Cliente cadastrado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar cliente.", TipoMensagem.Erro); } } return(RedirectToAction(nameof(Index))); } else { return(View(cliente)); } }
public async Task <IActionResult> Create(int?id, [FromForm] CategoriaModel categoria) { if (ModelState.IsValid) { if (id.HasValue) { if (CategoriaExiste(id.Value)) { _context.Categorias.Update(categoria); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Categoria alterada com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar categoria.", TipoMensagem.Erro); } } else { TempData["mensagem"] = MensagemModel.Serializar("Categoria não encontrada.", TipoMensagem.Erro); } } else { _context.Categorias.Add(categoria); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Categoria cadastrada com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar categoria.", TipoMensagem.Erro); } } return(RedirectToAction(nameof(Index))); } else { return(View(categoria)); } }
public async Task <IActionResult> Create(int?cid) { if (cid.HasValue) { var cliente = await _context.Clientes.FindAsync(cid); if (cliente != null) { _context.Entry(cliente).Collection(c => c.Pedidos).Load(); PedidoModel pedido = null; if (_context.Pedidos.Any(p => p.IdCliente == cid && !p.DataPedido.HasValue)) { pedido = await _context.Pedidos .FirstOrDefaultAsync(p => p.IdCliente == cid && !p.DataPedido.HasValue); } else { pedido = new PedidoModel { IdCliente = cid.Value, ValorTotal = 0 }; cliente.Pedidos.Add(pedido); await _context.SaveChangesAsync(); } return(RedirectToAction("Index", "ItemPedido", new { ped = pedido.IdPedido })); } TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } TempData["mensagem"] = MensagemModel.Serializar("Cliente não informado", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); }
public async Task <IActionResult> Create([FromForm] int?idUsuario, [FromForm] EnderecoModel endereco) { if (idUsuario.HasValue) { var cliente = await _context.Clientes.FindAsync(idUsuario); ViewBag.Cliente = cliente; if (ModelState.IsValid) { if (cliente.Enderecos.Count() == 0) { endereco.Selecionado = true; } endereco.CEP = ObterCepNormalizado(endereco.CEP); if (endereco.IdEndereco > 0) { if (endereco.Selecionado) { cliente.Enderecos.ToList().ForEach(e => e.Selecionado = false); } if (EnderecoExiste(idUsuario.Value, endereco.IdEndereco)) { var enderecoAtual = cliente.Enderecos .FirstOrDefault(e => e.IdEndereco == endereco.IdEndereco); _context.Entry(enderecoAtual).CurrentValues.SetValues(endereco); if (_context.Entry(enderecoAtual).State == EntityState.Unchanged) { TempData["mensagem"] = MensagemModel.Serializar("Nenhum dado do endereço foi alterado."); } else { if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Endereço alterado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar endereço."); } } } else { TempData["mensagem"] = MensagemModel.Serializar("Endereço não encontrado.", TipoMensagem.Erro); } } else { var idEndereco = cliente.Enderecos.Count() > 0 ? cliente.Enderecos.Max(e => e.IdEndereco) + 1 : 1; endereco.IdEndereco = idEndereco; _context.Clientes.FirstOrDefault(c => c.IdUsuario == idUsuario).Enderecos.Add(endereco); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Endereço cadastrado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar endereço."); } } return(RedirectToAction("Index", "Endereco", new { cid = idUsuario })); } else { return(View(endereco)); } } else { TempData["mensagem"] = MensagemModel.Serializar("Nenhum proprietário de endereços foi informado.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } }