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); }
/// <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(); }
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(); }
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); }
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(); }
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); } }
// 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); }
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(); } } } }