public List <Linea> ProductoMasComprado(Usuario usuario) { List <Compra> comprasUsuario = FiltrarComprasPorUsuario(usuario); List <Linea> aux = new List <Linea>(); foreach (Compra c in comprasUsuario) { foreach (Linea l in c.Lineas) { Producto p = l.Producto; bool existe = false; foreach (Linea linea in aux) { if (linea.Producto.Id == p.Id) { linea.Cantidad += l.Cantidad; existe = true; } } if (!existe) { Linea nueva = new Linea(l.Producto, l.Cantidad); aux.Add(nueva); } } } aux.Sort(); decimal cant = 0; List <Linea> retorno = new List <Linea>(); foreach (Linea l in aux) { if (l.Cantidad >= cant) { retorno.Add(l); cant = l.Cantidad; } } return(retorno); }
private Sistema() { new List <Producto>(); new List <Categoria>(); new List <Usuario>(); new List <Cliente>(); new List <Compra>(); AgregarCategoria("Frescos"); AgregarCategoria("Congelados"); AgregarCategoria("Hogar"); AgregarCategoria("Textiles"); AgregarCategoria("Tecnologia"); AgregarCategoria("Bebidas"); AgregarProducto(new Producto("Asado", "De exportación", true, new Categoria("Frescos"), 335)); AgregarProducto(new Producto("Chorizo", "De rueda", true, new Categoria("Frescos"), 395)); AgregarProducto(new Producto("Empanadas", "Supercongeladas de queso y cebolla", true, new Categoria("Congelados"), 262)); AgregarProducto(new Producto("Escarbadientes", "Palillos de madera", true, new Categoria("Hogar"), 23)); AgregarProducto(new Producto("Repasador", "A cuadros", false, new Categoria("Textiles"), 115)); AgregarProducto(new Producto("Fernet", "Directo de Cordoba Capital", true, new Categoria("Bebidas"), 578)); AgregarProducto(new Producto("Wisky", "Edición Game Of Thrones", true, new Categoria("Bebidas"), 1990)); AgregarProducto(new Producto("Cerveza", "Nacional", false, new Categoria("Bebidas"), 129)); AgregarProducto(new Producto("Vino", "Espumante", false, new Categoria("Bebidas"), 388)); AgregarProducto(new Producto("Pizza", "A la piedra y con muzzarella", true, new Categoria("Congelados"), 320)); AgregarProducto(new Producto("Hamburguesas", "Extra Carne Vacuna", false, new Categoria("Frescos"), 241)); AgregarProducto(new Producto("Mantel", "Redondo", false, new Categoria("Textiles"), 890)); AgregarProducto(new Producto("Sillon", "Plegable para exterior", false, new Categoria("Hogar"), 1300)); AgregarProducto(new Producto("Canasto", "Para la basura", false, new Categoria("Hogar"), 371)); AgregarProducto(new Producto("Agua", "Sin gas", true, new Categoria("Bebidas"), 94)); usuarios.Add(new Usuario("sofi", "sofi", "adm", null)); usuarios.Add(new Usuario("fede", "fede", "adm", null)); usuarios.Add(new Usuario("luis", "luis", "adm", null)); //Precarga clientes comunes DateTime fecha = new DateTime(2017, 02, 19); AgregarClienteComun("Nombre 1", "*****@*****.**", "Direccion 1", true, fecha, 12345678, 098123123); AgregarUsuario("usuario1", "clave1", "cliente", 3); fecha = new DateTime(2019, 07, 23); AgregarClienteComun("Nombre 2", "*****@*****.**", "Direccion 2", true, fecha, 12223334, 091456456); AgregarUsuario("usuario2", "clave2", "cliente", 5); fecha = new DateTime(2018, 12, 04); AgregarClienteComun("Nombre 3", "*****@*****.**", "Direccion 3", false, fecha, 56667778, 094789789); AgregarUsuario("usuario3", "clave3", "cliente", 7); // Precarga de Cliente/Empresa fecha = new DateTime(2018, 12, 04); AgregarClienteEmpresa("Empresa 1", "*****@*****.**", "Direccion 4", false, fecha, "Empresa 1 SA", 123456, 0.25); AgregarUsuario("usuario4", "clave4", "cliente", 9); fecha = new DateTime(2012, 06, 21); AgregarClienteEmpresa("Empresa 2", "*****@*****.**", "Direccion 5", true, fecha, "Empresa 2 SRL", 123124125, 0.15); AgregarUsuario("usuario5", "clave5", "cliente", 11); AgregarClienteEmpresa("Empresa 3", "*****@*****.**", "Direccion 6", true, fecha, "Empresa 3 Ltda", 2123654378, 0.30); AgregarUsuario("usuario6", "clave6", "cliente", 13); //Precarga de compras DateTime fechaC = new DateTime(2017, 03, 05); List <Linea> lineas = new List <Linea>(); Linea unaLinea = new Linea(ObtenerProducto(1), 10); lineas.Add(unaLinea); AgregarCompra("usuario1", fechaC, lineas, true, false, 1000); fechaC = new DateTime(2018, 04, 23); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(2), 1); lineas.Add(unaLinea); AgregarCompra("usuario1", fechaC, lineas, false, true, 379); fechaC = new DateTime(2018, 06, 20); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(2), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(3), 1); lineas.Add(unaLinea); AgregarCompra("usuario2", fechaC, lineas, false, true, 379); fechaC = new DateTime(2019, 11, 09); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 6); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(2), 1); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(3), 1); AgregarCompra("usuario6", fechaC, lineas, false, true, 1200); fechaC = new DateTime(2018, 11, 23); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(3), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(4), 1); lineas.Add(unaLinea); AgregarCompra("usuario2", fechaC, lineas, true, true, 379); fechaC = new DateTime(2019, 10, 09); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 8); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(2), 6); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(5), 2); lineas.Add(unaLinea); AgregarCompra("usuario4", fechaC, lineas, false, true, 600); fechaC = new DateTime(2019, 08, 13); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(3), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(4), 4); lineas.Add(unaLinea); AgregarCompra("usuario4", fechaC, lineas, false, false, 100); fechaC = new DateTime(2019, 07, 15); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(2), 7); lineas.Add(unaLinea); AgregarCompra("usuario5", fechaC, lineas, true, false, 1000); fechaC = new DateTime(2019, 10, 09); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 6); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(2), 4); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(3), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(4), 3); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(5), 2); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(14), 3); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(11), 4); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(9), 5); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(7), 3); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(6), 2); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(13), 1); lineas.Add(unaLinea); AgregarCompra("usuario3", fechaC, lineas, true, true, 2500); fechaC = new DateTime(2019, 01, 13); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(2), 1); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(1), 3); lineas.Add(unaLinea); AgregarCompra("usuario2", fechaC, lineas, false, true, 4); fechaC = new DateTime(2019, 02, 14); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 2); lineas.Add(unaLinea); unaLinea = new Linea(ObtenerProducto(3), 5); lineas.Add(unaLinea); AgregarCompra("usuario3", fechaC, lineas, false, true, 5); fechaC = new DateTime(2019, 03, 16); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(5), 2); lineas.Add(unaLinea); AgregarCompra("usuario4", fechaC, lineas, false, true, 6); fechaC = new DateTime(2019, 04, 17); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(0), 2); lineas.Add(unaLinea); AgregarCompra("usuario5", fechaC, lineas, false, true, 7); fechaC = new DateTime(2019, 04, 29); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(2), 2); lineas.Add(unaLinea); AgregarCompra("usuario6", fechaC, lineas, false, true, 8); fechaC = new DateTime(2019, 11, 3); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(1), 2); lineas.Add(unaLinea); AgregarCompra("usuario2", fechaC, lineas, false, true, 10); fechaC = new DateTime(2019, 12, 5); lineas = new List <Linea>(); unaLinea = new Linea(ObtenerProducto(3), 3); lineas.Add(unaLinea); AgregarCompra("usuario4", fechaC, lineas, false, true, 11); }