Exemple #1
0
        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
        }
Exemple #2
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));
        }
Exemple #3
0
 public void Add(PedidoPersonalizacao pedidoPersonalizacao)
 {
     _contexto.PedidoPersonalizacoes.Add(pedidoPersonalizacao);
 }