コード例 #1
0
        public void TieneDispositivosEncendidosTest()
        {
            cliente.Inteligentes.Add(d1);
            cliente.Estandars.Add(d3);

            d1.Encender();

            Assert.IsTrue(cliente.TieneDispositivosEncendidos());
        }
コード例 #2
0
        public void ObtenerConsumoDeUltimasNHoras_3_activacionesTest()
        {
            Inteligente dispositivo = new Inteligente("TV", 100m);
            decimal     valor;

            dispositivo.Encender();
            dispositivo.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro.AddHours(-3);
            dispositivo.Apagar();
            dispositivo.RegistroDeActivaciones.ElementAt(1).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(1).FechaDeRegistro.AddHours(-2);
            dispositivo.Encender();
            dispositivo.RegistroDeActivaciones.ElementAt(2).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(2).FechaDeRegistro.AddHours(-1);

            valor = dispositivo.ObtenerConsumoDeUltimasNHoras(8);
            Assert.IsTrue(valor == 200m);
        }
コード例 #3
0
        public JsonResult ejecutarSimplex()
        {
            Dictionary <string, double> resultadoSimplex = ejecucionSimplex();
            var        UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
            var        user        = UserManager.FindById(User.Identity.GetUserId());
            SGEContext db          = new SGEContext();

            if (resultadoSimplex == null)
            {
                return(Json(new { success = false, error = "No se puede ejecutar el simplex" }));
            }

            BaseRepositorio <Inteligente> repoInteligente = new BaseRepositorio <Inteligente>(db);
            var includesCliente = new List <Expression <Func <Inteligente, object> > >()
            {
                i => i.RegistroDeActivaciones,
                i => i.Clientes
            };
            Inteligente inteligente = null;

            foreach (KeyValuePair <string, double> item in resultadoSimplex)
            {
                if (item.Value > 0 && item.Key != "TotalHorasRestantes" && item.Key != "ConsumoRestanteTotal")
                {
                    inteligente = repoInteligente.Single(i => i.Nombre == item.Key && i.Clientes.Any(c => c.NombreUsuario == user.UserName), includesCliente);
                    inteligente.Encender();
                    repoInteligente.Update(inteligente);
                }
            }

            return(Json(new { success = true }));
        }
コード例 #4
0
        public JsonResult CambiarEstado(int idInteligente, EstadoDispositivo estado)
        {
            SGEContext context = new SGEContext();

            BaseRepositorio <Inteligente> repoInteligente = new BaseRepositorio <Inteligente>(context);
            Inteligente inteligente = repoInteligente.Single(i => i.Id == idInteligente);

            inteligente.Context = context;

            switch (estado)
            {
            case EstadoDispositivo.AhorroEnergia:
                inteligente.ColocarEnAhorroEnergia();
                break;

            case EstadoDispositivo.Apagado:
                inteligente.Apagar();
                break;

            case EstadoDispositivo.Encendido:
                inteligente.Encender();
                break;

            default:
                return(Json(new { success = false, error = "Estado desconocido" }));
            }


            repoInteligente.Update(inteligente);

            return(Json(new { success = true }));
        }
コード例 #5
0
        public void PasarAModoAhorroEnergia()
        {
            Inteligente Tele     = new Inteligente("TV", "DDEAEA7C1ADE458991D496812D5D41FA");
            Inteligente LavaRopa = new Inteligente("LAVARROPAS", "A0BA3245EAFC4EC994CC841698B835C0");

            Tele.Encender();
            Tele.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro = Tele.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro.AddHours(-300);

            LavaRopa.Encender();
            LavaRopa.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro = LavaRopa.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro.AddHours(-60);

            List <Inteligente> lista = new List <Inteligente>();

            lista.Add(Tele);
            lista.Add(LavaRopa);

            Assert.IsFalse(Tele.EstaApagado);

            Planificador pl = Planificador.getInstance();

            pl.Iniciar();
            pl.agregarTareaTest(lista, 1);

            Thread.Sleep(3000);
            pl.Detener();

            Assert.IsTrue(Tele.EstaApagado);
        }
コード例 #6
0
        public void ObtenerConsumoPeriodoTest()
        {
            Inteligente dispositivo = new Inteligente("TV", 100m);
            decimal     valor;

            ///TODO: el calculo de las horas está mal, en esta prueba el resultado debería ser 600m en este contexto, pero al momento de obtener
            ///el registro de activaciones trae solo las que iniciaron luego de las horas indicadas, sin embargo si habia un estado
            ///previo "encendido" pero que inicio antes de las horas indicadas no lo trae y no contabiliza las horas. No se corrige ya que se desconoce
            ///si esta contemplado o no, por el momento solo se cambia el valor de la prueba para que no falle
            dispositivo.Encender();
            dispositivo.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(0).FechaDeRegistro.AddHours(-25);
            dispositivo.Apagar();
            dispositivo.RegistroDeActivaciones.ElementAt(1).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(1).FechaDeRegistro.AddHours(-4);
            dispositivo.Encender();
            dispositivo.RegistroDeActivaciones.ElementAt(2).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(2).FechaDeRegistro.AddHours(-3);
            dispositivo.Apagar();
            dispositivo.RegistroDeActivaciones.ElementAt(3).FechaDeRegistro = dispositivo.RegistroDeActivaciones.ElementAt(3).FechaDeRegistro.AddHours(-1);

            valor = dispositivo.ObtenerConsumoDeUltimasNHoras(8);
            Assert.IsTrue(valor == 200m);
        }