Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        /// <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));
        }