コード例 #1
0
        internal string ConfirmarGustos(InvitacionPedido ip, ConfirmarcionGustoDTO c)
        {
            Pedido p = FindOneById(ip.IdPedido);


            List <InvitacionPedidoGustoEmpanadaUsuario> i = InvitacionPedidoGustoEmpanadaUsuarioSvc.FindAllByPedidoAndUser(p.IdPedido, c.IdUsuario);

            String mensaje = "";

            if (c.GustosEmpanadasCantidad != null)
            {
                foreach (GustosEmpanadasCantidad g in c.GustosEmpanadasCantidad)
                {
                    GustoEmpanada GustoEmpanada = GustoEmpanadaSvc.FindById(g.IdGustoEmpanada);
                    if (p.GustoEmpanada.Contains(GustoEmpanada))
                    {
                        if (i != null && i.Count != 0)
                        {
                            InvitacionPedidoGustoEmpanadaUsuario gustoEncontrado = i.Find(x => x.IdGustoEmpanada == g.IdGustoEmpanada);
                            if (gustoEncontrado != null)
                            {
                                gustoEncontrado.Cantidad = g.Cantidad;
                                Db.SaveChanges();
                            }
                            else
                            {
                                InvitacionPedidoGustoEmpanadaUsuario gusto = new InvitacionPedidoGustoEmpanadaUsuario
                                {
                                    IdGustoEmpanada = g.IdGustoEmpanada,
                                    IdPedido        = p.IdPedido,
                                    IdUsuario       = c.IdUsuario,
                                    Cantidad        = g.Cantidad
                                };
                                InvitacionPedidoGustoEmpanadaUsuarioSvc.Save(gusto);
                            }
                        }
                        else
                        {
                            InvitacionPedidoGustoEmpanadaUsuario gusto = new InvitacionPedidoGustoEmpanadaUsuario
                            {
                                IdGustoEmpanada = g.IdGustoEmpanada,
                                IdPedido        = p.IdPedido,
                                IdUsuario       = c.IdUsuario,
                                Cantidad        = g.Cantidad
                            };
                            InvitacionPedidoGustoEmpanadaUsuarioSvc.Save(gusto);
                        }
                    }
                    else
                    {
                        mensaje = "El gusto de id: " + g.IdGustoEmpanada + " no está disponible.";
                    }
                }
            }
            else
            {
                mensaje = "No se han seleccionado gustos.";
            }
            return(mensaje);
        }
コード例 #2
0
        /// <summary>
        /// Edita el pedido que anteriormente fue pasado por id
        /// </summary>
        /// <param name="pedido"></param>
        public void Editar(Pedido pedido)
        {
            Pedido p = Context.Pedido.Find(pedido.IdPedido);

            p.NombreNegocio     = pedido.NombreNegocio;
            p.Descripcion       = pedido.Descripcion;
            p.PrecioUnidad      = pedido.PrecioUnidad;
            p.PrecioDocena      = pedido.PrecioDocena;
            p.FechaModificacion = DateTime.Now;
            foreach (var idGusto in pedido.GustoDeEmpanadaSeleccionados)
            {
                GustoEmpanada gustoEmpanadaDisponible = Context.GustoEmpanada.Find(idGusto);
                p.GustoEmpanada.Add(gustoEmpanadaDisponible);
            }
            Context.SaveChanges();
        }
コード例 #3
0
        public void SetGustos(Pedido pedido, String[] Gustos)
        {
            List <GustoEmpanada> gustos = new List <GustoEmpanada>();
            GustoEmpanada        gusto  = new GustoEmpanada();

            for (int i = 0; i < Gustos.Count(); i++)
            {
                gusto = GetGustoEmpanada(int.Parse(Gustos[i]));
                gustos.Add(gusto);
            }
            pedido.GustoEmpanada = gustos;

            var entry = ctx.Entry(pedido);

            entry.State = EntityState.Modified;

            ctx.SaveChanges();
        }
コード例 #4
0
ファイル: PedidoServicio.cs プロジェクト: Laush/Empanadas
        public void Agregar(Pedido p, Usuario idUsuarioReponsable)
        {
            Pedido nuevoPedido = p;

            nuevoPedido.IdUsuarioResponsable = idUsuarioReponsable.IdUsuario;
            nuevoPedido.IdEstadoPedido       = 1;//al crearlos estado uno
            nuevoPedido.FechaCreacion        = DateTime.Now;
            MiBD.Pedido.Add(nuevoPedido);
            MiBD.SaveChanges();

            //ADD GustoEmpanada AL PEDIDO (GustoEmpanadaDisponiblePedido)
            foreach (var idGusto in nuevoPedido.IdGustosSeleccionados)
            {
                GustoEmpanada gustoEmpanadaDisponible = MiBD.GustoEmpanada.Find(idGusto);
                nuevoPedido.GustoEmpanada.Add(gustoEmpanadaDisponible);
                MiBD.SaveChanges();
            }
            //verifico q seleccione usuarios
            if (p.IdUsuariosInvitados != null)
            {
                foreach (var idUsuario in nuevoPedido.IdUsuariosInvitados)
                {
                    InvitacionPedido nuevaInvitacionPedido = new InvitacionPedido();
                    nuevaInvitacionPedido.IdPedido   = nuevoPedido.IdPedido;
                    nuevaInvitacionPedido.Completado = false;
                    nuevaInvitacionPedido.Token      = Guid.NewGuid();
                    nuevaInvitacionPedido.IdUsuario  = idUsuario;
                    MiBD.InvitacionPedido.Add(nuevaInvitacionPedido);
                    MiBD.SaveChanges();
                    EnviarEmailInvitados(nuevaInvitacionPedido);
                }
            }

            //AGREGO AL USUARIO RESPONSABLE EN LA INVITACION PEDIDO
            InvitacionPedido invitacionPedidoDelUsuarioResponsable = new InvitacionPedido();

            invitacionPedidoDelUsuarioResponsable.IdPedido   = nuevoPedido.IdPedido;
            invitacionPedidoDelUsuarioResponsable.Completado = false;
            invitacionPedidoDelUsuarioResponsable.Token      = Guid.NewGuid();
            invitacionPedidoDelUsuarioResponsable.IdUsuario  = idUsuarioReponsable.IdUsuario;
            MiBD.InvitacionPedido.Add(invitacionPedidoDelUsuarioResponsable);
            MiBD.SaveChanges();
            EnviarEmailInvitados(invitacionPedidoDelUsuarioResponsable);
        }
コード例 #5
0
ファイル: PedidoServicio.cs プロジェクト: Laush/Empanadas
        public void Modificar(Pedido j)
        {
            Pedido p = MiBD.Pedido.Find(j.IdPedido);

            p.NombreNegocio     = j.NombreNegocio;
            p.Descripcion       = j.Descripcion;
            p.PrecioUnidad      = j.PrecioUnidad;
            p.PrecioDocena      = j.PrecioDocena;
            p.FechaModificacion = DateTime.Now;
            foreach (var idGusto in j.IdGustosSeleccionados)
            {
                GustoEmpanada gustoEmpanadaDisponible = MiBD.GustoEmpanada.Find(idGusto);
                p.GustoEmpanada.Add(gustoEmpanadaDisponible);
                MiBD.SaveChanges();
            }
            // MiBD.Pedido.FirstOrDefault(p => p.IdPedido == id).GustoEmpanada.ToList();

            /*
             * InvitacionPedido nuevaInvitacionPedido = MiBD.InvitacionPedido.FirstOrDefault(x => x.IdPedido == j.IdPedido);
             * foreach ( var invitadoNuevo in j.IdUsuariosInvitados)
             * {
             *  if (nuevaInvitacionPedido.IdUsuario != invitadoNuevo)
             *  {
             *      InvitacionPedido newInvitado = new InvitacionPedido();
             *      newInvitado.IdUsuario = invitadoNuevo;
             *      newInvitado.Token = Guid.NewGuid();
             *      newInvitado.IdPedido = j.IdPedido;
             *      newInvitado.Completado = false;
             *      p.InvitacionPedido.Add(newInvitado);
             *      MiBD.SaveChanges();
             *  }
             *
             *
             * } */
            //p.InvitacionPedido.Clear();



            MiBD.SaveChanges();
        }
コード例 #6
0
ファイル: PedidoServicio.cs プロジェクト: Laush/Empanadas
        public void EnviarMailCerrado(InvitacionPedido invitacionPedido, Pedido pedido)
        {
            Usuario usuario = MiBD.Usuario.Find(invitacionPedido.IdUsuario);

            int cantidadTotal   = invitacionPedido.Pedido.InvitacionPedidoGustoEmpanadaUsuario.Sum(m => m.Cantidad);
            int docenasTotales  = cantidadTotal / 12;
            int resto           = cantidadTotal - (docenasTotales * 12);
            int TotalPorDocenas = docenasTotales * invitacionPedido.Pedido.PrecioDocena;
            int precioResto     = resto * invitacionPedido.Pedido.PrecioUnidad;
            int Total           = TotalPorDocenas + precioResto;

            List <String> usuarioPrecioPorAbonar = new List <String>();

            foreach (var item in pedido.IdUsuariosInvitados)
            {
                Usuario user = MiBD.Usuario.Find(item);
                int     cantidadTotalesPorUsuario = user.InvitacionPedidoGustoEmpanadaUsuario
                                                    .Where(m => m.IdUsuario == item)
                                                    .Where(m => m.IdPedido == invitacionPedido.IdPedido)
                                                    .Sum(m => m.Cantidad);
                int docenasTotalesPorUsuario = cantidadTotalesPorUsuario / 12;
                int restoPorUsuario          = cantidadTotalesPorUsuario - (docenasTotalesPorUsuario * 12);
                int RestoPorUsuario          = restoPorUsuario * invitacionPedido.Pedido.PrecioUnidad;
                int TotalPorDocenasDeUsuario = docenasTotalesPorUsuario * invitacionPedido.Pedido.PrecioDocena;
                int TotalPorUsuario          = TotalPorDocenasDeUsuario + RestoPorUsuario;
                usuarioPrecioPorAbonar.Add("Invitado: " + user.Email + " Precio a abonar: $" + Convert.ToString(RestoPorUsuario));
            }

            List <string> detalle = new List <string>();

            var newlist = invitacionPedido.Pedido.InvitacionPedidoGustoEmpanadaUsuario.GroupBy(d => d.IdGustoEmpanada)
                          .Select(g => new { Key      = g.Key,
                                             Value    = g.Sum(s => s.Cantidad),
                                             Category = g.First().GustoEmpanada,
                                             Name     = g.First().GustoEmpanada.Nombre });

            foreach (var item in newlist.ToList())
            {
                detalle.Add(item.Name + ": " + item.Value);
            }

            var    fromAddress  = new MailAddress("*****@*****.**", "Empanadas YA!");
            var    toAddress    = new MailAddress(usuario.Email);
            string fromPassword = "******";
            string subject      = "Resumen";
            string body         = "";

            //mail para el responsable
            if (invitacionPedido.IdUsuario == invitacionPedido.Pedido.IdUsuarioResponsable)
            {
                body = "<h1>Empanadas Ya</h1>Precio Total:</b> $" + Total + "<br><b>Invitados:</b><br> " +
                       String.Join(",<br>", usuarioPrecioPorAbonar.ToArray()) + "<br><b>Detalle:</b><br>" + String.Join(",<br>", detalle.ToArray()) +
                       "<br><b>Total de empanadas: </b>" + cantidadTotal;
            }
            else
            {//mail para el resto
                List <string> datosInvitados = new List <string>();
                foreach (var item in invitacionPedido.Pedido.InvitacionPedidoGustoEmpanadaUsuario.Where(m => m.IdUsuario == invitacionPedido.IdUsuario))
                {
                    GustoEmpanada empanadas = MiBD.GustoEmpanada.Find(item.IdGustoEmpanada);
                    datosInvitados.Add("Gusto: " + empanadas.Nombre + ", Cantidad: " + item.Cantidad);
                }
                body = "<h1>Empanadas Ya</h1>Total de empanadas del pedido: " + cantidadTotal + "<br>" +
                       String.Join(",<br>", datosInvitados.ToArray()) + "<br>Precio Total: $" + Total + "</b>";
            }

            var smtp = new SmtpClient
            {
                Host                  = "smtp.gmail.com",
                Port                  = 587,
                EnableSsl             = true,
                DeliveryMethod        = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
            };

            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = body,
                IsBodyHtml = true
            })
            {
                smtp.Send(message);
            }
        }
コード例 #7
0
        // Guardar Pedido
        public int GuardarPedido(Pedido pedido, int?[] gustos, string[] usuariosInvitados)
        {
            var valor = HttpContext.Current.Session["IdUsuario"] as int?;

            pedido.IdUsuarioResponsable = (int)valor;
            pedido.IdEstadoPedido       = 1;
            pedido.FechaCreacion        = DateTime.Now;
            foreach (var item in gustos)
            {
                GustoEmpanada gustoEmpanada = Contexto.GustoEmpanada.Find(item);
                pedido.GustoEmpanada.Add(gustoEmpanada);
            }
            Contexto.Pedido.Add(pedido);
            Contexto.SaveChanges();
            foreach (var invitados in usuariosInvitados)
            {
                Boolean crearUsuario = true;
                foreach (var usuario in Contexto.Usuario)
                {
                    if (usuario.Email.Equals(invitados))
                    {
                        crearUsuario = false;
                    }
                }
                if (crearUsuario)
                {
                    Usuario usuarioCrear = new Usuario();
                    usuarioCrear.Email    = invitados;
                    usuarioCrear.Password = "******";
                    Contexto.Usuario.Add(usuarioCrear);
                    Contexto.SaveChanges();
                }
            }
            // Guardo una invitacion para el usuario responsable
            InvitacionPedido miInvitacion = new InvitacionPedido();
            var guid1 = Guid.NewGuid();

            miInvitacion.IdPedido   = pedido.IdPedido;
            miInvitacion.IdUsuario  = (int)valor;
            miInvitacion.Token      = guid1;
            miInvitacion.Completado = false;
            Contexto.InvitacionPedido.Add(miInvitacion);
            Contexto.SaveChanges();
            foreach (var item in usuariosInvitados)
            {
                InvitacionPedido invitacion = new InvitacionPedido();
                var guid = Guid.NewGuid();
                invitacion.IdPedido = pedido.IdPedido;
                var usu = Contexto.Usuario.Where(emailUsu => emailUsu.Email.Equals(item)).First();
                if (usu.IdUsuario == valor)
                {
                    break;
                }
                invitacion.IdUsuario  = usu.IdUsuario;
                invitacion.Token      = guid;
                invitacion.Completado = false;
                this.enviarEmail(invitacion, usu, null);
                Contexto.InvitacionPedido.Add(invitacion);
                Contexto.SaveChanges();
            }

            var responsable = Contexto.InvitacionPedido.Where(i => i.IdUsuario == valor && i.IdPedido == pedido.IdPedido).Select(i => i.Token).FirstOrDefault();

            this.enviarEmail(null, null, responsable);

            int idGenerado = pedido.IdPedido;

            return(idGenerado);
        }
コード例 #8
0
        public void EditarPedido(Pedido pedido, int?[] gustos, string[] usuariosInvitados, int opcion_id)
        {
            //Busco el pedido a editar le limpio los gustos y le guardo los que selecciono
            var pedidoBuscado = BuscarPedidoPorId(pedido.IdPedido);

            pedidoBuscado.GustoEmpanada.Clear();
            foreach (var item in gustos)
            {
                GustoEmpanada gustoEmpanada = Contexto.GustoEmpanada.Find(item);
                pedidoBuscado.GustoEmpanada.Add(gustoEmpanada);
            }
            pedidoBuscado.NombreNegocio     = pedido.NombreNegocio;
            pedidoBuscado.PrecioDocena      = pedido.PrecioDocena;
            pedidoBuscado.PrecioUnidad      = pedido.PrecioUnidad;
            pedidoBuscado.FechaModificacion = DateTime.Now;
            pedidoBuscado.Descripcion       = pedido.Descripcion;
            Contexto.SaveChanges();


            // Si el usuario no existe lo creo
            if (usuariosInvitados != null)
            {
                foreach (var invitados in usuariosInvitados)
                {
                    Boolean crearUsuario = true;
                    foreach (var usuario in Contexto.Usuario)
                    {
                        if (usuario.Email.Equals(invitados))
                        {
                            crearUsuario = false;
                        }
                    }
                    if (crearUsuario)
                    {
                        Usuario usuarioCrear = new Usuario();
                        usuarioCrear.Email    = invitados;
                        usuarioCrear.Password = "******";
                        Contexto.Usuario.Add(usuarioCrear);
                        Contexto.SaveChanges();
                    }
                }
            }
            // Lista de invitaciones del pedido a editar
            var listaInvitacionesPedido = Contexto.InvitacionPedido.Where(ped => ped.IdPedido == pedidoBuscado.IdPedido).ToList();

            //Eliminar si el usuario fue quitado
            foreach (var it in listaInvitacionesPedido)
            {
                Boolean existeInvitado = false;
                foreach (var it2 in usuariosInvitados)
                {
                    var usu = Contexto.Usuario.Where(email => email.Email.Equals(it2)).First();

                    if (opcion_id == 2)
                    {
                        InvitacionPedido invitacion = new InvitacionPedido();
                        var guid = Guid.NewGuid();
                        invitacion.Token = guid;
                        this.enviarEmail(invitacion, usu, null);
                    }

                    if (it.IdUsuario == usu.IdUsuario)
                    {
                        existeInvitado = true;
                    }
                    else  // Nuevo Usuario
                    {
                        if (opcion_id == 3)
                        {
                            InvitacionPedido invitacion = new InvitacionPedido();
                            var guid = Guid.NewGuid();
                            invitacion.Token = guid;
                            this.enviarEmail(invitacion, usu, null);
                        }
                    }
                }
                if (!existeInvitado)
                {
                    Contexto.InvitacionPedido.Remove(it);
                    Contexto.SaveChanges();
                }

                if (opcion_id == 4)
                {
                    if (it.Completado == false)
                    {
                        var usuInvitacionPedido = Contexto.Usuario.Where(u => u.IdUsuario == it.IdUsuario).First();

                        InvitacionPedido invitacion = new InvitacionPedido();
                        var guid = Guid.NewGuid();
                        invitacion.Token = guid;
                        this.enviarEmail(invitacion, usuInvitacionPedido, null);
                    }
                }
            }
            //Debe crear invitacion solo si la invitacion no existe
            if (usuariosInvitados != null)
            {
                foreach (var item in usuariosInvitados)
                {
                    Boolean crearInvitacion = true;
                    var     usu             = Contexto.Usuario.Where(emailUsu => emailUsu.Email.Equals(item)).First();
                    foreach (var usuarioInvitacion in listaInvitacionesPedido)
                    {
                        if (usu.IdUsuario == usuarioInvitacion.IdUsuario)
                        {
                            crearInvitacion = false;
                            break;
                        }
                    }
                    if (crearInvitacion)
                    {
                        InvitacionPedido invitacion = new InvitacionPedido();
                        var guid = Guid.NewGuid();
                        invitacion.IdUsuario  = usu.IdUsuario;
                        invitacion.IdPedido   = pedido.IdPedido;
                        invitacion.Token      = guid;
                        invitacion.Completado = true;
                        Contexto.InvitacionPedido.Add(invitacion);
                        Contexto.SaveChanges();
                    }
                }
            }
        }