/// <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)); }
/// <summary> /// Endpoint que traz o resumo de um pedido realizado, nele precisa ser informado o Id do pedido em que deseja pegar o resumo /// </summary> public IHttpActionResult ResumoPedido([FromBody] RequestApiParameters parameters) { var model = new PedidoModel(); using (var context = new PizzariaUdsEntities()) { var pedido_Result = context.Fn_Pedido(parameters.PedidoId).FirstOrDefault(); if (pedido_Result == null) { return(BadRequest("O pedido não foi encontrado!")); } 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; var listPersonalizacoes = context.PedidoPersonalizacao.Include(p => p.Personalizacao).Where(p => p.PedidoId == parameters.PedidoId).ToList(); if (listPersonalizacoes != null && listPersonalizacoes.Count > 0) { foreach (var item in listPersonalizacoes) { model.ListPersonalizacao.Add(new PersonalizacaoModel { Id = item.PersonalizacaoId, Personalizacao = item.Personalizacao.Personalizacao1, Valor = item.Personalizacao.Valor, Tempo = item.Personalizacao.Tempo }); } } } return(Ok(model)); }