public Inteligente(string nombre, string id) : base(nombre)
 {
     this.Clientes = new List <Cliente>();
     this.RegistroDeActivaciones = new List <Activacion>();
     this.ConsumoEnergia         = Convert.ToDecimal(DispositivosHelper.GetInstace().Dispositivos.Where(x => x.Id == id).Single().Consumo);
     this.IdentificadorFabrica   = id;
     this.Sensores = new List <SensorFisico>();
     Context       = new SGEContext();
 }
        private void CargarCoeficientes()
        {
            this.Coeficientes = new Dictionary <string, double>();

            foreach (Dispositivo d in DispositivosHelper.GetInstace().Dispositivos.Where(x => !x.EsReemplazable))
            {
                this.Coeficientes.Add(d.Id.ToUpper(), d.Consumo);
            }
        }
        public void LevantarDispositivosArchivo()
        {
            BaseRepositorio <Inteligente> repoInteligente = new BaseRepositorio <Inteligente>();

            foreach (Core.Entidades.Dispositivo dispositivo in DispositivosHelper.GetInstace().Dispositivos)
            {
                if (repoInteligente.Single(d => d.Nombre == dispositivo.Tipo) == null)
                {
                    repoInteligente.Create(new Inteligente()
                    {
                        Nombre               = dispositivo.Tipo,
                        ConsumoEnergia       = (decimal)dispositivo.Consumo,
                        IdentificadorFabrica = dispositivo.Id.Substring(0, 14)
                    });
                }
            }
        }
        /// <summary>
        /// Agrega una restriccion minima y maxima para un determinado dispositivo.
        /// </summary>
        public SimplexBuilder AgregarRestriccion(KeyValuePair <string, string> par, double valor)
        {
            if (DispositivosHelper.GetInstace().Existe(par.Key) && !DispositivosHelper.GetInstace().GetDispositivo(par.Key).EsReemplazable&& valor >= HORAS_MINIMAS && valor <= HORAS_MAXIMAS)
            {
                this.Dispositivos.Add(par.Value, par.Key);

                Decision decision = new Decision(Domain.RealNonnegative, par.Value);
                this.Model.AddDecision(decision);
                this.Model.AddConstraint("Minimo" + this.Minimos++, decision >= HORAS_MINIMAS);
                this.Model.AddConstraint("Maximo" + this.Maximos++, decision <= HORAS_MAXIMAS - valor);
            }
            else
            {
                throw new Exception(); //TODO completar
            }
            return(this);
        }
 public void TestInitialize()
 {
     this.helper = DispositivosHelper.GetInstace();
 }