예제 #1
0
        public void CantidadPuntosUsuario15_test()
        {
            //Arrenge
            using (var db = new DBContext())
            {
                var cliente = new Cliente("Luciano", "Panizza", "Medrano951", "CantidadPuntosUsuario15_test", "asdqwe123", "12345678", "dni", "12345678");
                cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var lamparaHalogena40W = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W.UsuarioID = cliente.UsuarioID;
                var lamparaHalogena40W2 = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W2.UsuarioID = cliente.UsuarioID;


                //Act
                cliente.AgregarDispInteligente(lamparaHalogena40W);
                cliente.AgregarDispInteligente(lamparaHalogena40W2);

                var clDB = new Cliente("CantidadPuntosUsuario15_test");

                //Assert
                Assert.AreEqual(30, clDB.PuntosAcum);
                Assert.AreEqual(30, cliente.PuntosAcum);
            }
        }
예제 #2
0
        public void ConvertirDEaDIyCambioState_test()
        {
            using (var db = new DBContext())
            {
                //Arrenge
                var cliente = new Cliente("Luciano", "Panizza", "Medrano951", "ConvertirDEaDIyCambioState", "asdqwe123", "12345678", "dni", "12345678");
                cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var cliente1 = new Cliente(cliente.Username);

                var tvsamsung = new DispositivoEstandar("televisor LCD de 40 pulgadas", "0014", 0.18, 0, 360, 90);
                tvsamsung.UsuarioID = cliente1.UsuarioID;
                db.Dispositivos.Add(tvsamsung);
                db.SaveChanges();

                var dispEst1 = new DispositivoEstandar(tvsamsung.DispositivoID);

                cliente1.AdaptarDispositivo(dispEst1, "Samsung");

                var DBdispInt1 = db.Dispositivos.First(x => x.UsuarioID == cliente1.UsuarioID && x.Codigo == "0014" && x.EsInteligente == true);
                var dispInt1   = new DispositivoInteligente(DBdispInt1.DispositivoID);

                //Act

                dispInt1.Encender();

                var ultimoEstado = db.Estados.Find(dispInt1.IDUltimoEstado);

                //Assert
                Assert.AreEqual(true, DBdispInt1.EsInteligente);
                Assert.AreEqual("Encendido", ultimoEstado.Desc);
            }
        }
예제 #3
0
        public void AgregarRestriccion(double valorAComparar, DispositivoInteligente dispositivoAComparar, string operador)
        {
            List <double> valoresDispositivos = new List <double>();

            //Puedo comparar horas que esta prendido un dispositivo, o consumo de los mismos
            //Si quiero comparar consumos, se pasa null a ese parametro
            //Si quiero un dispositivo en particular, se pasa por parametro el dispositivo
            //seteando todos los valores del list double a 0 menos el de la posicion del dispositivo a comparar
            if (dispositivoAComparar == null)
            {
                foreach (DispositivoInteligente dispo in Dispositivos)
                {
                    valoresDispositivos.Add(dispo.KwPorHora);
                }
            }
            else
            {
                for (int i = 0; i < Dispositivos.Count(); i++)
                {
                    if (Dispositivos[i] == dispositivoAComparar)
                    {
                        valoresDispositivos.Add(1);
                    }
                    else
                    {
                        valoresDispositivos.Add(0);
                    }
                }
            }

            //Creo la restriccion
            Restriccion unaRestriccion = new Restriccion(valorAComparar, valoresDispositivos, operador);

            Restricciones.Add(unaRestriccion);
        }
예제 #4
0
        public void DeAhorroAEncendido_test()
        {
            using (var db = new DBContext())
            {
                //Arrenge
                Cliente cliente = new Cliente("Luciano", "Panizza", "Medrano951", "DeAhorroAEncendido_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var lamparaHalogena40W = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W.UsuarioID = cliente.UsuarioID;
                cliente.AgregarDispInteligente(lamparaHalogena40W);

                var DI = new DispositivoInteligente(lamparaHalogena40W.DispositivoID);

                //Act
                DI.AhorrarEnergia();
                DI.Encender();

                //var ultEst = db.Estados.Find(DI.IDUltimoEstado);

                //Assert
                //Assert.AreEqual("Encendido", ultEst.Desc);
                Assert.IsInstanceOfType(DI.Estado, typeof(Encendido));
            }
        }
예제 #5
0
 //Metodos para cambiar el estado del dispositivo
 //Los primeros son para cambiar desde disp propios, los segundos son para cambiar desde la pagina del dispositivo
 public ActionResult Encender(int id, string estadoActual)
 {
     if (estadoActual != "Encendido")
     {
         DispositivoInteligente DI = new DispositivoInteligente(id);
         DI.Encender();
     }
     return(RedirectToAction("DispositivosPropios", "Home"));
 }
예제 #6
0
 public ActionResult Apagar3(int id, string estadoActual, int Uid)
 {
     if (estadoActual != "Apagado")
     {
         DispositivoInteligente DI = new DispositivoInteligente(id);
         DI.Apagar();
     }
     return(RedirectToAction("DetallesCliente", "Home", new { id = Uid }));
 }
예제 #7
0
 public ActionResult Ahorro2(int id, string estadoActual)
 {
     if (estadoActual != "Ahorro")
     {
         DispositivoInteligente DI = new DispositivoInteligente(id);
         DI.AhorrarEnergia();
     }
     return(RedirectToAction("DetallesInteligente", "Home", new { id }));
 }
예제 #8
0
 public ActionResult Encender2(int id, string estadoActual)
 {
     if (estadoActual != "Encendido")
     {
         DispositivoInteligente DI = new DispositivoInteligente(id);
         DI.Encender();
     }
     return(RedirectToAction("DetallesInteligente", "Home", new { id }));
 }
예제 #9
0
 public ActionResult Ahorro(int id, string estadoActual)
 {
     if (estadoActual != "Ahorro")
     {
         DispositivoInteligente DI = new DispositivoInteligente(id);
         DI.AhorrarEnergia();
     }
     return(RedirectToAction("DispositivosPropios", "Home"));
 }
예제 #10
0
        public void CargarBase()
        {
            using (var db = new DBContext())
            {
                var cliente = new Cliente("*****@*****.**");

                var Aire3500fg = new DispositivoInteligente("aire acondicionado de 3500 frigorias", "0011", 1.613, 360, 90);
                Aire3500fg.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(Aire3500fg);
                db.SaveChanges();

                var est1 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-20), FechaFinal = DateTime.Now.AddHours(-15)
                };
                var est2 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-15), FechaFinal = DateTime.Now.AddHours(-7)
                };
                var est3 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-7), FechaFinal = DateTime.Now.AddHours(-2)
                };
                var est4 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-2)
                };

                Aire3500fg.AgregarEstado(est1);
                Aire3500fg.AgregarEstado(est2);
                Aire3500fg.AgregarEstado(est3);
                Aire3500fg.AgregarEstado(est4);

                var tvAire24LEd = new DispositivoInteligente("televisor LED de 24 pulgadas", "0015", 0.04, 365, 90);
                tvAire24LEd.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(tvAire24LEd);
                db.SaveChanges();

                tvAire24LEd.AgregarEstado(new Apagado(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-720), FechaFinal = DateTime.Now.AddHours(-680)
                });
                tvAire24LEd.AgregarEstado(new Encendido(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-680), FechaFinal = DateTime.Now.AddHours(-500)
                });
                tvAire24LEd.AgregarEstado(new Apagado(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-500), FechaFinal = DateTime.Now.AddHours(-370)
                });
                tvAire24LEd.AgregarEstado(new Encendido(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-370)
                });
            }
        }
예제 #11
0
        public void ConectarTrafoProx_Test()
        {
            using (var db = new DBContext())
            {
                //Arrenge

                var cliente = new Cliente("Luciano", "Panizza", "Medrano 951", "ConectarTrafoPro", "asdqwe123", "12345678", "dni", "12345678");
                cliente.AgregarALaBase();

                var lamparaHalogena40W = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W.UsuarioID = cliente.UsuarioID;
                cliente.AgregarDispInteligente(lamparaHalogena40W);
                lamparaHalogena40W.Encender();

                var cliente2 = new Cliente("Luciano", "Panizza", "Lafinur 3400", "ConectarTrafoPro2", "asdqwe123", "12345678", "dni", "12345678");
                cliente2.AgregarALaBase();

                var lamparaHalogena40W2 = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W2.UsuarioID = cliente2.UsuarioID;
                cliente2.AgregarDispInteligente(lamparaHalogena40W2);
                lamparaHalogena40W2.Encender();

                var cliente3 = new Cliente("Luciano", "Panizza", "Av de mayo 130", "ConectarTrafoPro3", "asdqwe123", "12345678", "dni", "12345678");
                cliente3.AgregarALaBase();

                var lamparaHalogena40W3 = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W3.UsuarioID = cliente3.UsuarioID;
                cliente3.AgregarDispInteligente(lamparaHalogena40W3);
                lamparaHalogena40W3.Encender();

                var cliente4 = new Cliente("Luciano", "Panizza", "Av rivadavia 8000", "ConectarTrafoPro4", "asdqwe123", "12345678", "dni", "12345678");
                cliente4.AgregarALaBase();

                var lamparaHalogena40W4 = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W4.UsuarioID = cliente4.UsuarioID;
                cliente4.AgregarDispInteligente(lamparaHalogena40W4);
                lamparaHalogena40W4.Encender();



                //Act

                /*
                 * var trafoProx = db.Transformadores.Find(cliente.TransformadorID);
                 * var trafoProx2 = db.Transformadores.Find(cliente2.TransformadorID);
                 *
                 * //Assert
                 * Assert.AreEqual(cliente.TransformadorID, trafoProx.TransformadorID);
                 * Assert.AreEqual(cliente2.TransformadorID, trafoProx2.TransformadorID);
                 */
            }
        }
예제 #12
0
        public double ConsumoDispositivosInteligentes(int periodo)
        {
            double consumo = 0;

            foreach (var disp in dispositivos)
            {
                if (disp.GetType() == typeof(DispositivoInteligente))
                {
                    DispositivoInteligente d = (DispositivoInteligente)disp;
                    consumo += d.EnergiaConsumidaEnPeriodo(periodo);
                }
            }
            return(consumo);
        }
예제 #13
0
 public ActionResult CrearRegla([Bind(Include = "ValorMax,ValorMin,Tipo,Descripcion")] Regla reglaNueva, int id)
 {
     try
     {
         if (ModelState.IsValid)
         {
             DispositivoInteligente di = new DispositivoInteligente(id);
             di.CargarActuador();
             di.AgregarRegla(reglaNueva);
         }
     }
     catch (RetryLimitExceededException)
     {
         ModelState.AddModelError("", "No se pudo Crear");
     }
     return(RedirectToAction("DetallesInteligente/" + id, "Home"));
 }
예제 #14
0
        public void ConsumoEnergiaEnUltimas10Hs_test()
        {
            using (var db = new DBContext())
            {
                //Arrenge
                Cliente cliente = new Cliente("Luciano", "Panizza", "Medrano951", "ConsumoEnergiaEnUltimas10Hs_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var Aire3500fg = new DispositivoInteligente("aire acondicionado de 3500 frigorias", "0011", 1.613, 360, 90);
                Aire3500fg.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(Aire3500fg);
                db.SaveChanges();

                var est1 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-20), FechaFinal = DateTime.Now.AddHours(-15)
                };
                var est2 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-15), FechaFinal = DateTime.Now.AddHours(-7)
                };
                var est3 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-7), FechaFinal = DateTime.Now.AddHours(-2)
                };
                var est4 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-2)
                };

                Aire3500fg.AgregarEstado(est1);
                Aire3500fg.AgregarEstado(est2);
                Aire3500fg.AgregarEstado(est3);
                Aire3500fg.AgregarEstado(est4);

                //Act
                var result = Aire3500fg.ConsumoEnHoras(10);
                var comp   = Aire3500fg.KWxHora * 5; //5 horas

                //Assert
                Assert.AreEqual(comp, result);
            }
        }
예제 #15
0
        public ActionResult AgregarDispositivoClie(SubmitViewModel model)
        {
            //Agrega el nuevo dispositivo al usuario
            string codigo = model.DispositivoSeleccionado;

            Cliente c = new Cliente(User.Identity.GetUserName());

            if (DispositivosTotales.EsInteligente(codigo))
            {
                DispositivoInteligente disp = DispositivosTotales.EncontrarDispositivoInteligente(codigo);
                c.AgregarDispInteligente(disp);
            }
            else
            {
                DispositivoEstandar disp = DispositivosTotales.EncontrarDispositivoEstandard(codigo);
                c.AgregarDispEstandar(disp);
            }

            return(RedirectToAction("DispositivosPropios", "Home"));
        }
예제 #16
0
        public void Simplex_Test()
        {
            using (var db = new DBContext())
            {
                //Arrenge
                var recomendacion = Recomendacion.Instancia();
                var simplex       = SimplexHelper.Instancia();

                var cliente = new Cliente("Luciano", "Panizza", "Medrano951", "WebService_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var Lampara60W = new DispositivoInteligente("lampara halogena de 60 W", "0011", 0.06, 360, 90);
                Lampara60W.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(Lampara60W);
                db.SaveChanges();

                var microondas = new DispositivoEstandar("microondas convencional", "0011", 0.64, 0, 15, 3);
                microondas.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(microondas);
                db.SaveChanges();

                var televisor40 = new DispositivoEstandar("televisor LCD de 40 pulgadas", "0014", 0.18, 0, 360, 90);
                televisor40.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(televisor40);
                db.SaveChanges();

                var lavarropa = new DispositivoEstandar("lavarropas automatico de 5kg con calentamiento", "0021", 0.875, 0, 30, 6);
                lavarropa.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(lavarropa);
                db.SaveChanges();

                //Act
                var resultado = recomendacion.GenerarRecomendacion(cliente);

                //Assert

                Assert.AreEqual("[765.0, 15.0, 360.0, 30.0, 360.0]", resultado);
            }
        }
예제 #17
0
        public void RecomendacionesDelCliente()
        {
            using (var db = new DBContext())
            {
                //Arrenge

                var cliente = new Cliente("Luciano", "Panizza", "Medrano951", "RecomendacionesDelCliente_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var Lampara60W = new DispositivoInteligente("lampara halogena de 60 W", "0011", 0.06, 360, 90);
                cliente.AgregarDispInteligente(Lampara60W);

                var microondas = new DispositivoEstandar("microondas convencional", "0011", 0.64, 0, 15, 3);
                cliente.AgregarDispEstandar(microondas);

                var televisor40 = new DispositivoEstandar("televisor LCD de 40 pulgadas", "0014", 0.18, 0, 360, 90);
                cliente.AgregarDispEstandar(televisor40);

                var lavarropa = new DispositivoEstandar("lavarropas automatico de 5kg con calentamiento", "0021", 0.875, 0, 30, 6);
                cliente.AgregarDispEstandar(lavarropa);

                //Act
                var RecomendacionXDispositivos = cliente.SolicitarRecomendacion();

                //Assert

                //Assert.AreEqual("Valor independiente", RecomendacionXDispositivos[0].NombreDispositivo);
                Assert.AreEqual("lampara halogena de 60 W", RecomendacionXDispositivos[1].NombreDispositivo);
                Assert.AreEqual("microondas convencional", RecomendacionXDispositivos[2].NombreDispositivo);
                Assert.AreEqual("televisor LCD de 40 pulgadas", RecomendacionXDispositivos[3].NombreDispositivo);
                Assert.AreEqual("lavarropas automatico de 5kg con calentamiento", RecomendacionXDispositivos[4].NombreDispositivo);

                //Assert.AreEqual(765, RecomendacionXDispositivos[0].KWxHoraPuedeConsumir);
                Assert.AreEqual(15, RecomendacionXDispositivos[1].KWxHoraPuedeConsumir);
                Assert.AreEqual(360, RecomendacionXDispositivos[2].KWxHoraPuedeConsumir);
                Assert.AreEqual(30, RecomendacionXDispositivos[3].KWxHoraPuedeConsumir);
                Assert.AreEqual(360, RecomendacionXDispositivos[4].KWxHoraPuedeConsumir);
            }
        }
예제 #18
0
        public void CambioEstadoNoHaceNada_test()
        {
            //Arrenge
            using (var db = new DBContext())
            {
                var cliente = new Cliente("Luciano", "Panizza", "Medrano951", "CantidadPuntosUsuario15_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var lamparaHalogena40W = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W.UsuarioID = cliente.UsuarioID;
                cliente.AgregarDispInteligente(lamparaHalogena40W);
                var idEstAnt = lamparaHalogena40W.IDUltimoEstado;
                //Act
                lamparaHalogena40W.Apagar();


                //Assert
                Assert.AreEqual(idEstAnt, lamparaHalogena40W.IDUltimoEstado);
            }
        }
예제 #19
0
        public double ConsumoPorTransformador(int periodo, Transformador transformador)
        {
            double             consumo = 0;
            List <Dispositivo> dispos  = new List <Dispositivo>();

            foreach (Cliente cliente in transformador.Clientes)
            {
                dispos = DispositivoHandler.GetDispositivosByUsuarioID(cliente.UsuarioID);
                foreach (var disp in dispositivos)
                {
                    if (disp.GetType() == typeof(DispositivoEstandar))
                    {
                        DispositivoEstandar d = (DispositivoEstandar)disp;
                        consumo += d.CalcularConsumoMensual(periodo);
                    }
                    else if (disp.GetType() == typeof(DispositivoInteligente))
                    {
                        DispositivoInteligente d = (DispositivoInteligente)disp;
                        consumo += d.EnergiaConsumidaEnPeriodo(periodo);
                    }
                }
            }
            return(consumo);
        }
예제 #20
0
        public void EstaApagado_test()
        {
            using (var db = new DBContext())
            {
                Cliente cliente = new Cliente("Luciano", "Panizza", "Medrano951", "EstaApagado_test", "asdqwe123", "12345678", "dni", "12345678");
                //cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                //Arrenge
                var lamparaHalogena40W = new DispositivoInteligente("lampara halogena de 40 W", "0011", 0.04, 360, 90);
                lamparaHalogena40W.UsuarioID = cliente.UsuarioID;

                //Act
                cliente.AgregarDispInteligente(lamparaHalogena40W);

                var DI = new DispositivoInteligente(lamparaHalogena40W.DispositivoID);
                //var ultEst = db.Estados.Find(DI.IDUltimoEstado);

                //Assert
                //Assert.AreEqual("Apagado", ultEst.Desc);
                Assert.IsTrue(DI.EstaApagado());
            }
        }
예제 #21
0
        public ActionResult Index()
        {
            //Scheduler.Schedule();
            HttpContext.Cache.Add("Prueba", "Prueba2", null, DateTime.MaxValue, TimeSpan.FromSeconds(5), CacheItemPriority.Normal, new CacheItemRemovedCallback(CacheItemRemovedCallback));

            List <Cliente> clientes = new List <Cliente>();

            //Prueba Entity Framework
            using (var db = new ContextoDB())
            {
                /*Categoria R1 = new Categoria("R1", 18.76, 0.644);
                 * db.Categorias.Add(R1);
                 *
                 * DispositivoInteligente aire3500 = new DispositivoInteligente("Aire 3500", 1.613, new FabricanteDePrueba());
                 * DispositivoInteligente aire2200 = new DispositivoInteligente("Aire 2200", 1.013, new FabricanteDePrueba());
                 * DispositivoInteligente tvLed40 = new DispositivoInteligente("TV Led 40", 0.08, new FabricanteDePrueba());
                 *
                 * db.Dispositivos.Add(aire2200);
                 * db.Dispositivos.Add(aire3500);
                 * db.Dispositivos.Add(tvLed40);
                 *
                 * db.SaveChanges();*/

                var clientesquery = from u in db.Clientes
                                    orderby u.UsuarioID
                                    select u;

                foreach (var item in clientesquery)
                {
                    clientes.Add((Cliente)item);
                }

                DispositivoInteligente aire2200 = null;
                DispositivoInteligente tvLed40  = null;
                var dispositivoQuery            = from d in db.Dispositivos
                                                  orderby d.NombreDispositivo
                                                  select d;
                foreach (var item in dispositivoQuery)
                {
                    //if (item.NombreDispositivo == "Aire Acondicionado 3500")
                    if (item.NombreDispositivo == "Ventilador de pie")
                    {
                        ViewData["objeto"] = item.GetType();
                        //aire2200 = (DispositivoInteligente)item;
                    }
                    else if (item.NombreDispositivo == "TV LED 32")
                    {
                        tvLed40 = (DispositivoInteligente)item;
                    }
                }

                //DispositivoInteligente aire2200 = (DispositivoInteligente)db.Dispositivos.First(d => d.NombreDispositivo == "Aire Acondicionado 3500");
                //DispositivoInteligente tvLed40 = (DispositivoInteligente)db.Dispositivos.First(d => d.NombreDispositivo == "TV LED 40");

                //Creo un nuevo cliente
                Cliente unCliente = new Cliente();
                unCliente.UsuarioID     = 1;
                unCliente.NombreUsuario = "sebikap";
                unCliente.Password      = "******";
                unCliente.Nombre        = "Sebastian";
                unCliente.Apellido      = "Kaplanski";
                unCliente.Domicilio     = "Av Medrano 851";
                unCliente.FechaDeAlta   = DateTime.Now;
                unCliente.TipoDoc       = "DNI";
                unCliente.TipoDoc       = "12345678";
                unCliente.Telefono      = "4888-8888";
                unCliente.Categoria     = CategoriaHandler.GetCategoriaDB("R1");
                unCliente.Puntos        = 0;
                //unCliente.Dispositivos.Add(aire2200);
                unCliente.Dispositivos.Add(tvLed40);

                System.Diagnostics.Debug.WriteLine("LCDTMAB AGREGO");
                db.Clientes.Add(unCliente);

                System.Diagnostics.Debug.WriteLine("LCDTMAB GUARDO");
                db.SaveChanges();

                var query = from b in db.Clientes
                            where b.Apellido == "Kaplanski"
                            orderby b.Apellido
                            select b;

                foreach (var item in query)
                {
                    ViewData["ClienteDePrueba"] = item.Apellido + " " + item.Nombre /*+ " " + item.Dispositivos[0].NombreDispositivo*/;
                }
            }

            //Importacion de usuarios - VER COMO PASAR A VISTA!!!!
            //List<Cliente> clientes = ClienteImporter.ImportarUsuarios();
            ViewData["Clientes"] = clientes[0].UsuarioID + clientes[0].Apellido + clientes[0].Nombre + clientes[0].NombreUsuario + clientes[0].Password + clientes[0].TipoDoc + clientes[0].NumeroDoc + clientes[0].Telefono;

            //Importacion de administradores
            List <Administrador> administradores = AdministradorImporter.ImportarUsuarios();

            ViewData["Administradores"] = administradores[0].Apellido;

            //Importacion de dispositivos
            List <DispositivoInteligente> dispositivos = DispositivoImporter.ImportarDispositivosInteligentes();

            ViewData["Dispositivos"] = dispositivos[0].NombreDispositivo + dispositivos[0].KwPorHora;

            //PRUEBA SIMPLEX
            List <DispositivoInteligente> dispositivosInteligentes = DispositivoHandler.GetDispositivosInteligentes(clientes[0].UsuarioID);

            unaConsultaSimplex = new Simplex(dispositivosInteligentes);
            unaConsultaSimplex.AgregarRestriccion(440640, null, "<=");
            unaConsultaSimplex.AgregarRestriccion(90, dispositivosInteligentes[0], ">=");
            ViewData["ResultadoSimplex"] = unaConsultaSimplex.Ejecutar();



            return(View());
        }
예제 #22
0
        public void AccionesAutomatica_Test()
        {
            using (var db = new DBContext())
            {
                //Arrenge
                var InstanciaRec = Recomendacion.Instancia();
                var cliente      = new Cliente("Luciano", "Panizza", "Medrano951", "AccionesAutomaticaON_Test", "asdqwe123", "12345678", "dni", "12345678");
                cliente.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente);
                db.SaveChanges();
                cliente.AccionAutomaticaON();

                var cliente2 = new Cliente("Luciano", "Panizza", "Medrano951", "AccionesAutomaticaOFF_Test", "asdqwe123", "12345678", "dni", "12345678");
                cliente2.TransformadorID = 1; //necesita un id si o si
                db.Usuarios.Add(cliente2);
                db.SaveChanges();

                var tvAire24LEd = new DispositivoInteligente("televisor LED de 24 pulgadas", "0015", 0.04, 365, 90);
                tvAire24LEd.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(tvAire24LEd);
                db.SaveChanges();

                var microondas = new DispositivoEstandar("microondas convencional", "0011", 0.64, 0, 15, 3);
                microondas.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(microondas);
                db.SaveChanges();

                var televisor40 = new DispositivoEstandar("televisor LCD de 40 pulgadas", "0014", 0.18, 0, 360, 90);
                televisor40.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(televisor40);
                db.SaveChanges();

                var lavarropa = new DispositivoEstandar("lavarropas automatico de 5kg con calentamiento", "0021", 0.875, 0, 30, 6);
                lavarropa.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(lavarropa);
                db.SaveChanges();

                tvAire24LEd.AgregarEstado(new Apagado(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-500), FechaFinal = DateTime.Now.AddHours(-370)
                });
                tvAire24LEd.AgregarEstado(new Encendido(tvAire24LEd)
                {
                    FechaInicial = DateTime.Now.AddHours(-370)
                });

                var tvAire24LEd2 = new DispositivoInteligente("televisor LED de 24 pulgadas", "0015", 0.04, 365, 90);
                tvAire24LEd2.UsuarioID = cliente2.UsuarioID;
                db.Dispositivos.Add(tvAire24LEd2);
                db.SaveChanges();

                var microondas2 = new DispositivoEstandar("microondas convencional", "0011", 0.64, 0, 15, 3);
                microondas2.UsuarioID = cliente2.UsuarioID;
                db.Dispositivos.Add(microondas2);
                db.SaveChanges();

                var televisor402 = new DispositivoEstandar("televisor LCD de 40 pulgadas", "0014", 0.18, 0, 360, 90);
                televisor402.UsuarioID = cliente2.UsuarioID;
                db.Dispositivos.Add(televisor402);
                db.SaveChanges();

                var lavarropa2 = new DispositivoEstandar("lavarropas automatico de 5kg con calentamiento", "0021", 0.875, 0, 30, 6);
                lavarropa2.UsuarioID = cliente2.UsuarioID;
                db.Dispositivos.Add(lavarropa2);
                db.SaveChanges();

                tvAire24LEd2.AgregarEstado(new Apagado(tvAire24LEd2)
                {
                    FechaInicial = DateTime.Now.AddHours(-500), FechaFinal = DateTime.Now.AddHours(-370)
                });
                tvAire24LEd2.AgregarEstado(new Encendido(tvAire24LEd2)
                {
                    FechaInicial = DateTime.Now.AddHours(-370)
                });


                //Act

                InstanciaRec.EjecutarRecomendacion();

                var DI     = new DispositivoInteligente(tvAire24LEd.DispositivoID);
                var ultEst = db.Estados.Find(DI.IDUltimoEstado);

                var DI2     = new DispositivoInteligente(tvAire24LEd2.DispositivoID);
                var ultEst2 = db.Estados.Find(DI2.IDUltimoEstado);


                //Assert
                //Assert.AreEqual("[770.0, 15.0, 360.0, 30.0, 365.0]", resultado);
                Assert.AreEqual("Apagado", ultEst.Desc);
                Assert.IsTrue(DI.EstaApagado());
                Assert.AreEqual("Encendido", ultEst2.Desc);
                Assert.IsTrue(DI2.EstaEncendido());
            }
        }
예제 #23
0
        protected override void Seed(TP_Integrador.Data.ContextoDB context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.

            Cliente ClienteDePrueba = new Cliente(1, "NomUs", "LaPass", "Prueba", "Prueba", "Prueba", "DNI", "40000000", "4000000");

            using (var db = new ContextoDB())
            {
                DispositivoInteligente aire3500                     = new DispositivoInteligente("Aire Acondicionado 3500", 1.613, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente aire2200                     = new DispositivoInteligente("Aire Acondicionado 2200", 1.013, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoEstandar    tvTubo21                     = new DispositivoEstandar("TV Tubo Fluorescente 21'", 0.075, ClienteDePrueba);
                DispositivoEstandar    tvTubo29a34                  = new DispositivoEstandar("TV Tubo Fluorescente 29' a 34'", 0.175, ClienteDePrueba);
                DispositivoEstandar    tvLCD                        = new DispositivoEstandar("TV LCD 40'", 0.18, ClienteDePrueba);
                DispositivoInteligente tvLED24                      = new DispositivoInteligente("TV LED 24'", 0.04, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente tvLED32                      = new DispositivoInteligente("TV LED 32'", 0.055, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente tvLED40                      = new DispositivoInteligente("TV LED 40'", 0.08, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente heladeraConFreezer           = new DispositivoInteligente("Heladera Con Freezer", 0.09, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente heladeraSinFreezer           = new DispositivoInteligente("Heladera Sin Freezer", 0.075, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoEstandar    lavarropasAutoCCalentamiento = new DispositivoEstandar("Lavarropas automático de 5kg con calentamiento de agua", 0.875, ClienteDePrueba);
                DispositivoInteligente lavarropasAutomatico         = new DispositivoInteligente("Lavarropas automático de 5kg", 0.175, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoEstandar    lavaropasSemiAuto            = new DispositivoEstandar("Lavarropas semiautomático de 5kg", 0.1275, ClienteDePrueba);
                DispositivoEstandar    ventiladorPie                = new DispositivoEstandar("Ventilador de pie", 0.09, ClienteDePrueba);
                DispositivoInteligente ventiladorTecho              = new DispositivoInteligente("Ventilador de techo", 0.06, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lamparaHalo40W               = new DispositivoInteligente("Lampara Halogena de 40W", 0.04, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lamparaHalo60W               = new DispositivoInteligente("Lampara Halogena de 60W", 0.06, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lamparaHalo100W              = new DispositivoInteligente("Lampara Halogena de 100W", 0.015, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lampara11W                   = new DispositivoInteligente("Lampara de 11W", 0.011, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lampara15W                   = new DispositivoInteligente("Lampara de 15W", 0.015, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente lampara20W                   = new DispositivoInteligente("Lampara de 20W", 0.02, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoInteligente pcEscritorio                 = new DispositivoInteligente("PC de escritorio", 0.4, ClienteDePrueba, new FabricanteDePrueba());
                DispositivoEstandar    microondas                   = new DispositivoEstandar("Microondas convencional", 0.64, ClienteDePrueba);

                db.Dispositivos.Add(aire2200);
                db.Dispositivos.Add(aire3500);
                db.Dispositivos.Add(tvTubo21);
                db.Dispositivos.Add(tvTubo29a34);
                db.Dispositivos.Add(tvLCD);
                db.Dispositivos.Add(tvLED24);
                db.Dispositivos.Add(tvLED32);
                db.Dispositivos.Add(tvLED40);
                db.Dispositivos.Add(heladeraConFreezer);
                db.Dispositivos.Add(heladeraSinFreezer);
                db.Dispositivos.Add(lavarropasAutoCCalentamiento);
                db.Dispositivos.Add(lavarropasAutomatico);
                db.Dispositivos.Add(lavaropasSemiAuto);
                db.Dispositivos.Add(ventiladorPie);
                db.Dispositivos.Add(ventiladorTecho);
                db.Dispositivos.Add(lamparaHalo40W);
                db.Dispositivos.Add(lamparaHalo60W);
                db.Dispositivos.Add(lamparaHalo100W);
                db.Dispositivos.Add(lampara11W);
                db.Dispositivos.Add(lampara15W);
                db.Dispositivos.Add(lampara20W);
                db.Dispositivos.Add(pcEscritorio);
                db.Dispositivos.Add(microondas);

                db.SaveChanges();
            }
        }
예제 #24
0
        public ActionResult DetallesInteligente(int id)
        {
            DispositivoInteligente d = new DispositivoInteligente(id);

            return(View(d));
        }
예제 #25
0
        public void ConsumoZona_Test()
        {
            using (var db = new DBContext())
            {
                Cliente cliente = new Cliente("Luciano", "Panizza", "Medrano951", "ConsumoZona_test", "asdqwe123", "12345678", "dni", "12345678");
                db.Usuarios.Add(cliente);
                db.SaveChanges();

                var Aire3500fg = new DispositivoInteligente("aire acondicionado de 3500 frigorias", "0011", 1.613, 360, 90);
                Aire3500fg.UsuarioID = cliente.UsuarioID;
                db.Dispositivos.Add(Aire3500fg);
                db.SaveChanges();

                var est1 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-20), FechaFinal = DateTime.Now.AddHours(-15)
                };
                var est2 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-15), FechaFinal = DateTime.Now.AddHours(-7)
                };
                var est3 = new Apagado(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-7), FechaFinal = DateTime.Now.AddHours(-2)
                };
                var est4 = new Encendido(Aire3500fg)
                {
                    FechaInicial = DateTime.Now.AddHours(-2)
                };

                Aire3500fg.AgregarEstado(est1);
                Aire3500fg.AgregarEstado(est2);
                Aire3500fg.AgregarEstado(est3);
                Aire3500fg.AgregarEstado(est4);

                Cliente cliente2 = new Cliente("Luciano", "Panizza", "Pringles 853", "ConsumoZona2_test", "asdqwe123", "12345678", "dni", "12345678");
                db.Usuarios.Add(cliente2);
                db.SaveChanges();

                var Aire3500fg2 = new DispositivoInteligente("aire acondicionado de 3500 frigorias", "0011", 1.613, 360, 90);
                Aire3500fg2.UsuarioID = cliente2.UsuarioID;
                db.Dispositivos.Add(Aire3500fg2);
                db.SaveChanges();

                var est12 = new Apagado(Aire3500fg2)
                {
                    FechaInicial = DateTime.Now.AddHours(-20), FechaFinal = DateTime.Now.AddHours(-15)
                };
                var est22 = new Encendido(Aire3500fg2)
                {
                    FechaInicial = DateTime.Now.AddHours(-15), FechaFinal = DateTime.Now.AddHours(-7)
                };
                var est32 = new Apagado(Aire3500fg2)
                {
                    FechaInicial = DateTime.Now.AddHours(-7), FechaFinal = DateTime.Now.AddHours(-2)
                };
                var est42 = new Encendido(Aire3500fg2)
                {
                    FechaInicial = DateTime.Now.AddHours(-2)
                };

                Aire3500fg2.AgregarEstado(est12);
                Aire3500fg2.AgregarEstado(est22);
                Aire3500fg2.AgregarEstado(est32);
                Aire3500fg2.AgregarEstado(est42);

                //Act
                var zona   = db.Zonas.Find(1);
                var zonadb = new Zona(zona.ZonaID, zona.Latitud, zona.Longitud, zona.Radio);

                //Assert
                Assert.AreEqual(Aire3500fg.KWxHora * 5 * 2, zonadb.ConsumoTotal(DateTime.Now.AddHours(-10), DateTime.Now));
            }
        }