public Ahorro(DispositivoInteligente d) { FechaFinal = new DateTime(3000, 1, 1); FechaInicial = DateTime.Now; DispositivoID = d.DispositivoID; Desc = "Ahorro"; }
public Encendido(DispositivoInteligente d) { FechaInicial = DateTime.Now; FechaFinal = new DateTime(3000, 1, 1); DispositivoID = d.DispositivoID; Desc = "Encendido"; }
public void EjecutarRecomendacion() { using (var db = new DBContext()) { clientes = db.Usuarios.Where(x => x.EsAdmin == false).ToList(); } foreach (var c in clientes) { var cl = new Cliente(c.Username); var result = GenerarRecomendacion(cl); double[] doubleV = ParsearString(result); int i = 1; if (cl.AccionAutomatica == true) { foreach (var de in LDE) { i++; } foreach (var di in LDI) { var disp = new DispositivoInteligente(di.DispositivoID); if (doubleV[i] * disp.KWxHora < disp.ConsumoEnHoras(DateTime.Now.Day * 24)) { disp.Apagar(); } i++; } } } }
public void ActualizarUltimoEstadoSAMSUNG(DispositivoInteligente DI) { using (var db = new DBContext()) { var ultimoEstado = db.Estados.Find(DI.IDUltimoEstado); switch (ultimoEstado.Desc) { case "Apagado": DI.Estado = new Apagado(DI); DI.Estado.StateID = ultimoEstado.StateID; break; case "Encendido": DI.Estado = new Encendido(DI); DI.Estado.StateID = ultimoEstado.StateID; break; case "Ahorro": DI.Estado = new Ahorro(DI); DI.Estado.StateID = ultimoEstado.StateID; break; default: throw new Exception("Estado no reconocido"); } } }
public List <State> GetEstadosSAMSUNG(DispositivoInteligente DI) { //Retorna los estados del dispositivo using (var db = new DBContext()) { return(db.Estados.Where(e => e.DispositivoID == DI.DispositivoID).ToList()); } }
public double ConsumoEnHorasSAMSUNG(double horas, DispositivoInteligente DI) { using (var db = new DBContext()) { DI.estadosAnteriores = db.Estados.Where(e => e.DispositivoID == DI.DispositivoID).ToList(); } DateTime fFinal = DateTime.Now; DateTime fInicial = fFinal.AddHours(-horas); double hs = Static.FechasAdmin.HsConsumidasTotalPeriodo(fInicial, fFinal, DI.estadosAnteriores); return(hs * DI.KWxHora); }
public void AgregarEstadoSAMSUNG(State est, DispositivoInteligente DI) { DI.Estado = est; //dejar sirve para los cambios de estado cuando el disp esta en memoria //asi evitar recurrir a la base using (var db = new DBContext()) { db.Estados.Add(est); //Agrega el nuevo estado a la db db.SaveChanges(); DI.IDUltimoEstado = est.StateID; var DIact = db.Dispositivos.Find(DI.DispositivoID); DIact.IDUltimoEstado = est.StateID; db.SaveChanges(); } }
public double ConsumoActualSAMSUNG(DispositivoInteligente DI) { DI.ActualizarUltimoEstado(); switch (DI.Estado.Desc) { case "Encendido": return(DI.KWxHora); case "Ahorro": return(DI.KWxHora / 2); default: return(0); } }
public double ConsumoEnPeriodoSAMSUNG(DateTime fInicial, DateTime fFinal, DispositivoInteligente DI) { if (fFinal > DateTime.Now) { fFinal = DateTime.Now; } using (var db = new DBContext()) { DI.estadosAnteriores = db.Estados.Where(e => e.DispositivoID == DI.DispositivoID).ToList(); } double hs = Static.FechasAdmin.HsConsumidasTotalPeriodo(fInicial, fFinal, DI.estadosAnteriores); return(Math.Round(hs * DI.KWxHora, 3)); }
public override void AgregarDispInteligente(DispositivoInteligente DI) { PuntosAcum += 15; Dispositivos.Add(DI); using (var db = new DBContext()) { foreach (Usuario u in db.Usuarios) { if (u.Username == Username) { u.PuntosAcum += 15; DI.UsuarioID = u.UsuarioID; break; } } db.Dispositivos.Add(DI); db.SaveChanges(); } DI.AgregarEstado(new Apagado(DI)); DI.AgregarActuadores(); }
public override void EjecutarRegla(Regla regla) { //Metodo para ejecutar la regla //Metodo Strategy donde hay varias acciones que podria enviar al dispositivo de acuerdo a la regla DispositivoInteligente d = new DispositivoInteligente(DispositivoID); switch (regla.Descripcion) { case "encender": d.Encender(); break; case "apagar": d.Apagar(); break; case "ahorro": d.AhorrarEnergia(); break; } }
public double ConsumoSAMSUNG(DispositivoInteligente DI) { double acumuladoKw = 0; DI.ConsumoAcumulado = 0; double tiempoTotal = 0; DI.estadosAnteriores = DI.GetEstados(); foreach (State s in DI.estadosAnteriores) { double c = 0; if (s.FechaFinal == new DateTime(3000, 1, 1)) //Si el estado no termino, se usa la fecha de ahora como la final { s.FechaFinal = DateTime.Now; } switch (s.Desc) { case "Encendido": c = (s.FechaFinal - s.FechaInicial).Minutes; tiempoTotal += c; break; case "Ahorro": c = (s.FechaFinal - s.FechaInicial).Minutes / 2; tiempoTotal += c; break; case "Apagado": tiempoTotal = (s.FechaFinal - s.FechaInicial).Minutes; break; } DI.ConsumoAcumulado += c; acumuladoKw += c * DI.KWxHora / 60; } DI.ConsumoPromedio = acumuladoKw / tiempoTotal; return(acumuladoKw); }
public override DispositivoInteligente ConvertirEnInteligente(string marca) { DispositivoInteligente convertido = null; switch (marca) { case "Samsung": //AdaptadorSamsug convertido = new AdaptadorSamsung(...) convertido = new AdaptadorSamsung("Adaptador Samsung para " + Nombre, Codigo, KWxHora, Max, Min); break; case "HP": convertido = new AdaptadorHp("Adaptador HP para " + Nombre, Codigo, KWxHora, Max, Min); break; case "Apple": convertido = new AdaptadorApple("Adaptador Apple para " + Nombre, Codigo, KWxHora, Max, Min); break; } convertido.UsuarioID = UsuarioID; convertido.FechaAlta = DateTime.Now; return(convertido); }
public void ActualizarConsumoAcumuladoSAMSUNG(string fechaAlta, DispositivoInteligente DI) { DI.ConsumoAcumulado = DI.ConsumoEnPeriodo(DateTime.Parse(fechaAlta), DateTime.Now); }
public void AhorrarEnergiaSAMSUNG(DispositivoInteligente DI) { DI.Estado.AhorrarEnergia(DI); }
public void ApagarSAMSUNG(DispositivoInteligente DI) { DI.Estado.Apagar(DI); }
public void EncenderSAMSUNG(DispositivoInteligente DI) { DI.Estado.Encender(DI); }
public bool EnAhorroSAMSUNG(DispositivoInteligente DI) { return(DI.Estado is Ahorro); }
public override void AhorrarEnergia(DispositivoInteligente d) { FechaFinal = DateTime.Now; FinalizarEstado(); d.AgregarEstado(new Ahorro(d)); }
public abstract void AgregarDispInteligente(DispositivoInteligente DI);
public override void AhorrarEnergia(DispositivoInteligente d) { // throw new Exception("El dispositivo ya esta ahorrando!"); }
public State GetEstadoSAMSUNG(DispositivoInteligente DI) { return(DI.Estado); }
public abstract void Encender(DispositivoInteligente d);
public abstract void Apagar(DispositivoInteligente d);
public abstract void AhorrarEnergia(DispositivoInteligente d);
public override void Encender(DispositivoInteligente d) { //throw new Exception("El dispositivo ya esta encendido!"); }
public override void Apagar(DispositivoInteligente d) { // throw new Exception("El dispositivo ya esta apagado!"); }
public bool EstaEncendidoSAMSUNG(DispositivoInteligente DI) { return(DI.Estado is Encendido); }
public bool EstaApagadoSAMSUNG(DispositivoInteligente DI) { return(DI.Estado is Apagado); }
public override void Apagar(DispositivoInteligente d) { FechaFinal = DateTime.Now; FinalizarEstado(); d.AgregarEstado(new Apagado(d)); }