コード例 #1
0
        // POST api/Pedido
        public string PostPedido(UsuarioGustos GustosUsuario)
        {
            MensajeAppi msg = new MensajeAppi();

            msg = _apiSrv.ElegirGustos(GustosUsuario);


            return(JsonConvert.SerializeObject(msg));
        }
コード例 #2
0
        //TODO: Elegir service por json
        public MensajeAppi ElegirGustos(UsuarioGustos GustosUsuario)
        {
            MensajeAppi msj = new MensajeAppi();

            try
            {
                InvitacionPedido invitado = GetInvitacionPedidoPorToken(GustosUsuario.Token.ToString(), GustosUsuario.IdUsuario);

                Pedido pedido = ObtenerPedidoPorId(invitado.IdPedido);

                //  Pedido pedido = ObtenerPedidoPorId(ctx.InvitacionPedido.Where(t => t.Token == GustosUsuario.Token && t.IdUsuario == GustosUsuario.IdUsuario).FirstOrDefault().IdPedido);

                foreach (var gustoSolicitados in GustosUsuario.GustosEmpanadasCantidad)
                {
                    if (pedido.GustoEmpanada.Where(g => g.IdGustoEmpanada == gustoSolicitados.IdGustoEmpanada).Count() == 0)
                    {
                        msj.Resultado = "ERROR";
                        msj.Mensaje   = "No se pudo efectuar la operacion porque uno o mas pedidos no estan disponibles";
                        return(msj);
                    }
                }

                if (pedido.EstadoPedido.Nombre == "Cerrado")
                {
                    msj.Resultado = "ERROR";
                    msj.Mensaje   = "No se pudo efectuar la operacion porque el pedido se encuentra cerrado";
                    return(msj);
                }

                foreach (var gusto in pedido.GustoEmpanada)
                {
                    try
                    {
                        if (pedido.InvitacionPedidoGustoEmpanadaUsuario.Where(p => p.IdUsuario == GustosUsuario.IdUsuario && p.IdGustoEmpanada == gusto.IdGustoEmpanada).Count() > 0)
                        {
                            ctx.InvitacionPedidoGustoEmpanadaUsuario.Remove(ctx.InvitacionPedidoGustoEmpanadaUsuario.Where(i => i.GustoEmpanada.IdGustoEmpanada == gusto.IdGustoEmpanada && i.IdUsuario == GustosUsuario.IdUsuario && i.IdPedido == pedido.IdPedido).FirstOrDefault());
                        }

                        var cantidadEmpanada = GustosUsuario.GustosEmpanadasCantidad.Where(c => c.IdGustoEmpanada == gusto.IdGustoEmpanada).FirstOrDefault().Cantidad;
                        if (cantidadEmpanada != 0)
                        {
                            InvitacionPedidoGustoEmpanadaUsuario ipgeu = new InvitacionPedidoGustoEmpanadaUsuario
                            {
                                Cantidad      = cantidadEmpanada,
                                GustoEmpanada = gusto,
                                IdUsuario     = GustosUsuario.IdUsuario,
                            };


                            pedido.InvitacionPedidoGustoEmpanadaUsuario.Add(ipgeu);
                        }
                    }
                    catch (Exception e)
                    {
                        if (pedido.InvitacionPedidoGustoEmpanadaUsuario.Where(p => p.IdUsuario == GustosUsuario.IdUsuario && p.IdGustoEmpanada == gusto.IdGustoEmpanada).Count() > 0)
                        {
                            ctx.InvitacionPedidoGustoEmpanadaUsuario.Remove(ctx.InvitacionPedidoGustoEmpanadaUsuario.Where(i => i.GustoEmpanada.IdGustoEmpanada == gusto.IdGustoEmpanada && i.IdUsuario == GustosUsuario.IdUsuario && i.IdPedido == pedido.IdPedido).FirstOrDefault());
                        }
                        msj.Resultado = "ERROR";
                        msj.Mensaje   = "No se pudo efectuar la operacion porque " + e.ToString();
                        return(msj);
                    }
                }


                var invitacion = ctx.InvitacionPedido.Where(i => i.IdPedido == pedido.IdPedido && i.IdUsuario == GustosUsuario.IdUsuario).FirstOrDefault();
                invitacion.Completado = true;
                ctx.SaveChanges();
                msj.Resultado = "OK";
                msj.Mensaje   = "Gustos elegidos satisfactoriamente";
                return(msj);
            }
            catch (NullReferenceException)
            {
                msj.Resultado = "ERROR";
                msj.Mensaje   = "No se pudo efectuar la operacion porque el usuario es invalido";
                return(msj);
            }
        }