public IActionResult PutPedidoAdicional(int id, PedidoAdicional pedidoAdicional) { if (id != pedidoAdicional.IdAdicional) { return(BadRequest()); } try { service.AtualizarPedidoAdicional(pedidoAdicional); } catch (DbUpdateConcurrencyException) { if (!PedidoAdicionalExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public Pedido AlterPedido(InputPedido pedido, decimal total) { using (var transaction = _context.Database.BeginTransaction()){ try{ var model = _context.Pedidos.Where(p => p.Id.Equals(pedido.Id)).FirstOrDefault(); model.Cliente = pedido.Cliente; model.ValorTotalPedido = total; model.TamanhoId = pedido.Tamanho.Id; model.SaborId = pedido.Sabor.Id; var adiconaisEscluir = _context.PedidosAdicionais.Where(p => p.PedidoId == model.Id); _context.PedidosAdicionais.RemoveRange(adiconaisEscluir); foreach (var adicional in pedido.Adicionais) { var modelPedidoAdicional = new PedidoAdicional(); modelPedidoAdicional.AdicionalId = adicional.Id; modelPedidoAdicional.PedidoId = model.Id; _context.PedidosAdicionais.Add(modelPedidoAdicional); } _context.SaveChanges(); transaction.Commit(); return(model); }catch (Exception ex) { transaction.Rollback(); Console.WriteLine($"Error ao alterar pedido. Detalhe{ex.Message}"); return(null); } } }
public Pedido AddPedido(InputPedido pedido, decimal total) { using (var transaction = _context.Database.BeginTransaction()){ try{ Pedido entidadePedido = new Pedido(); entidadePedido.Cliente = pedido.Cliente; entidadePedido.ValorTotalPedido = total; entidadePedido.TamanhoId = pedido.Tamanho.Id; entidadePedido.SaborId = pedido.Sabor.Id; var resultado = _context.Pedidos.Add(entidadePedido); foreach (var adicional in pedido.Adicionais) { var modelPedidoAdicional = new PedidoAdicional(); modelPedidoAdicional.AdicionalId = adicional.Id; modelPedidoAdicional.PedidoId = resultado.Entity.Id; _context.PedidosAdicionais.Add(modelPedidoAdicional); } _context.SaveChanges(); transaction.Commit(); return(resultado.Entity); }catch (Exception ex) { transaction.Rollback(); Console.WriteLine($"Error ao gravar pedido. Detalhe{ex.Message}"); return(null); } } }
public async Task <ApiResponse <PedidoProcesadoModel> > Adicionar(PedidoModel data) { try { var model = new Domain.Pedido { IdSabor = data.IdSabor, IdTamanho = data.IdTamanho, }; string NomesAdicionais = ""; if (data.Adicionais.Count > 0) { var adicionais = await _repositoryAdicional.GetItems(f => data.Adicionais.Contains(f.Id)); model.TempoTotal = adicionais.Sum(f => f.MinutosAdicionais); model.ValorTotal = adicionais.Sum(f => f.ValorAdicionais); NomesAdicionais = string.Join(',', adicionais.Select(f => f.Nome).ToArray()); } var sabor = await _repositorySabor.BuscarPorId(data.IdSabor); model.TempoTotal += sabor.MinutosAdicionais; var tamanho = await _repositoryTamanho.BuscarPorId(data.IdTamanho); model.TempoTotal += tamanho.MinutosAdicionais; model.ValorTotal += tamanho.Valor; foreach (var item in data.Adicionais) { var itemAdicional = new PedidoAdicional() { IdAdicional = item, Pedido = model }; _repository.Context.Entry <PedidoAdicional>(itemAdicional).State = Microsoft.EntityFrameworkCore.EntityState.Added; model.PedidoAdicionais.Add(itemAdicional); } await _repository.Adicionar(model); var pediProcessado = new PedidoProcesadoModel() { Sabor = model.Sabor.Nome, Tamanho = model.Tamanho.Nome, TempoTotal = model.TempoTotal, ValorTotal = model.ValorTotal, Personalizacoes = NomesAdicionais }; return(new ApiResponse <PedidoProcesadoModel>(Domain.TableStatic.StatusCodes.Status200OK, pediProcessado)); } catch (Exception ex) { return(new ApiResponse <PedidoProcesadoModel>(Domain.TableStatic.StatusCodes.Status500InternalServerError, ex.Message)); } }
public JsonResult EscolhaAdicionais(int adicionalId, int pedidoId) { try { var pedido = db.Pedidos.Find(pedidoId); var getPedidoAdicional = db.Adicionais.Where(x => x.PedidoId == pedidoId).Select(s => new { s.PedidoAdicionalId }).FirstOrDefault(); AdicionalPizza adicionalPizza = new AdicionalPizza(); var adicional = adicionalPizza.MetodoLista().Where(x => x.ID == adicionalId).FirstOrDefault(); PedidoAdicional pedidoAdicional = new PedidoAdicional(); if (getPedidoAdicional == null) { pedidoAdicional.PedidoAdicionalId = 1; } else { pedidoAdicional.PedidoAdicionalId = getPedidoAdicional.PedidoAdicionalId + 1; } pedidoAdicional.PedidoId = pedidoId; pedidoAdicional.AdicionalId = adicionalId; pedidoAdicional.Valor = adicional.Valor; pedidoAdicional.Tempo = adicional.Tempo; db.Adicionais.Add(pedidoAdicional); db.SaveChanges(); var tempoPreparoTotal = db.Adicionais.Where(x => x.PedidoId == pedidoId).Sum(s => s.Tempo); var ValorTotal = db.Adicionais.Where(x => x.PedidoId == pedidoId).Sum(s => s.Valor); pedido.TempoPreparo += tempoPreparoTotal; pedido.ValorAdicional = ValorTotal; pedido.ValorTotal = Convert.ToDecimal(pedido.ValorAdicional) + pedido.ValorPizza; var adicionais = db.Adicionais.Where(x => x.PedidoId == pedidoId).ToList(); pedido.Adicionais = adicionais; db.Entry(pedido).State = EntityState.Modified; db.SaveChanges(); return(Json(pedido, JsonRequestBehavior.AllowGet)); } catch (Exception) { return(Json("Erro ao Efetuar o Pedido, tente novamente")); throw; } }
public ActionResult <PedidoAdicional> PostPedidoAdicional(PedidoAdicional pedidoAdicional) { try { service.CriarPedidoAdicional(pedidoAdicional); } catch (DbUpdateException) { if (PedidoAdicionalExists(pedidoAdicional.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetPedidoAdicional", new { id = pedidoAdicional.IdAdicional }, pedidoAdicional)); }
public void ExcluirPedidoAdicional(int id) { PedidoAdicional pedido = repository.Get(id); repository.Delete(pedido); }
public PedidoAdicional AtualizarPedidoAdicional(PedidoAdicional pedido) { repository.Update(pedido); return(pedido); }
public PedidoAdicional CriarPedidoAdicional(PedidoAdicional pedido) { repository.Insert(pedido); return(pedido); }