public void Post([FromBody] PedidoCreateRequestModel value) // RequestModel { Pedido pedido = new Pedido(); pedido.Sabor = _saborRepository.Find(value.Sabor); pedido.SaborId = pedido.Sabor.Id; pedido.Tamanho = _tamanhoRepository.Find(value.Tamanho); pedido.TamanhoId = pedido.Tamanho.Id; List <Personalizacao> personalizacoes = _personalizacaoRepository.GetPersonalizacoesPelosIds(value.Personalizacoes).ToList(); if (personalizacoes != null && personalizacoes.Count > 0) { foreach (Personalizacao item in personalizacoes) { PedidoPersonalizacao pedidoPersonalizacao = new PedidoPersonalizacao(); pedidoPersonalizacao.Personalizacao = new Personalizacao() { Id = item.Id, Description = item.Description, TempoAdicional = item.TempoAdicional, ValorAdicional = item.ValorAdicional }; pedidoPersonalizacao.Pedido = pedido; pedidoPersonalizacao.Personalizacao.Pedidos.Add(pedidoPersonalizacao); pedidoPersonalizacao.Pedido.Personalizacoes.Add(pedidoPersonalizacao); _pedidoPersonalizacaoRepository.Add(pedidoPersonalizacao); pedido.Personalizacoes.Add(pedidoPersonalizacao); } } pedido.TempoPreparo = GetTempoPreparo(pedido, personalizacoes); pedido.ValorTotal = GetValorTotal(pedido, personalizacoes); _pedidoRepository.Add(pedido); // Insertion }
/// <summary> /// Endpoint de personalização de pedido, neste endPoint deve ser informado o Id do pedido que /// esta em andamento para que seja possivel personalizar /// </summary> public IHttpActionResult PersonalizarPedido([FromBody] RequestApiParameters parameters) { var model = new PedidoModel(); using (var context = new PizzariaUdsEntities()) { var pedido = context.Pedido.FirstOrDefault(p => p.Id == parameters.PedidoId); if (pedido == null) { return(BadRequest("O pedido não foi encontrado!")); } if (parameters.ListPersonalizacao != null && parameters.ListPersonalizacao.Count > 0) { var listPersonalizacao = new List <PedidoPersonalizacao>(); foreach (var personalizacao in parameters.ListPersonalizacao.Distinct(StringComparer.InvariantCultureIgnoreCase)) { var personalizacaoModel = context.Personalizacao.FirstOrDefault(p => p.Personalizacao1.ToLower() == personalizacao.ToLower()); if (personalizacaoModel == null) { return(BadRequest($"A personalização {personalizacao} não foi encontrada!")); } var pizzaPersonalizacaoModel = new PedidoPersonalizacao(); pizzaPersonalizacaoModel.PedidoId = pedido.Id; pizzaPersonalizacaoModel.PersonalizacaoId = personalizacaoModel.Id; model.ListPersonalizacao.Add(new PersonalizacaoModel { Id = personalizacaoModel.Id, Tempo = personalizacaoModel.Tempo, Personalizacao = personalizacaoModel.Personalizacao1, Valor = personalizacaoModel.Valor }); listPersonalizacao.Add(pizzaPersonalizacaoModel); } foreach (var item in listPersonalizacao) { context.Entry(item).State = EntityState.Added; } context.SaveChanges(); var pedido_Result = context.Fn_Pedido(parameters.PedidoId).FirstOrDefault(); model.Sabor = pedido_Result.sabor; model.Tamanho = pedido_Result.tamanho; model.TempoTotal = pedido_Result.tempoTotal; model.Valor = pedido_Result.valor; model.ValorTotal = pedido_Result.valorTotal; } } return(Ok(model)); }
public void Add(PedidoPersonalizacao pedidoPersonalizacao) { _contexto.PedidoPersonalizacoes.Add(pedidoPersonalizacao); }