private static void TestCess([NotNull] CalcEnergyStorageSignal cess, [NotNull] TimeStep timestep, double capacity, double currentfill, [NotNull] List <double> values)
        {
            double d = cess.GetValue(timestep, capacity, currentfill);

            Logger.Info("Timestep:" + timestep + " StorageLevel:" + currentfill + " Result:" + d);
            values.Add(d);
        }
        public void EnergyStorageSignalTests2()
        {
            CalcParameters cp = CalcParameters.GetNew();

            cp.DummyCalcSteps = 0;
            //CalcLoadType clt = new CalcLoadType("clt",  "power", "sum", 1, true, Guid.NewGuid().ToStrGuid());
            CalcVariable cv = new CalcVariable("myvariable", Guid.NewGuid().ToStrGuid(), 0, "House", Guid.NewGuid().ToStrGuid(),
                                               Constants.HouseKey);
            CalcEnergyStorageSignal cess   = new CalcEnergyStorageSignal("blub", 100, 50, 2, cv, Guid.NewGuid().ToStrGuid());
            List <double>           values = new List <double>();
            int i = 0;

            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 5, values);
            TestCess(cess, new TimeStep(i++, cp), 100, 100, values);
            TestCess(cess, new TimeStep(i, cp), 100, 5, values);
        }
        private void SetEnergyStoragesOnHouse([NotNull][ItemNotNull] List <CalcEnergyStorageDto> energyStorages,
                                              [NotNull] HouseholdKey householdKey,
                                              [NotNull] CalcHouse calchouse, CalcVariableRepository calcVariableRepository
                                              ) //, List<CalcDeviceTaggingSet> deviceTaggingSets)
        {
            var cess           = new List <CalcEnergyStorage>();
            var esCategoryGuid = Guid.NewGuid().ToStrGuid();
            var esLocGuid      = Guid.NewGuid().ToStrGuid();

            foreach (var es in energyStorages)
            {
                //foreach (DeviceTaggingSet set in deviceTaggingSets) {
                //set.AddTag(es.Name,"House Device");
                //}
                var           lti       = _ltDict.GetCalcLoadTypeByLoadtype(es.InputLoadType).ConvertToDto();
                CalcDeviceDto deviceDto = new CalcDeviceDto(es.Name, esCategoryGuid, householdKey, OefcDeviceType.Storage,
                                                            "Energy Storage", "", es.Guid, esLocGuid, "Energy Storages");
                var ces = new CalcEnergyStorage(_calcRepo.Odap,
                                                lti,
                                                es.MaximumStorageRate,
                                                es.MaximumWithdrawRate,
                                                es.MinimumStorageRate,
                                                es.MinimumWithdrawRate,
                                                es.InitialFill,
                                                es.StorageCapacity,
                                                _calcRepo.Logfile.EnergyStorageLogfile,
                                                deviceDto
                                                );
                foreach (var signal in es.Signals)
                {
                    CalcVariable cv     = calcVariableRepository.GetVariableByGuid(signal.CalcVariableDto.Guid);
                    var          cessig = new CalcEnergyStorageSignal(signal.Name,
                                                                      signal.TriggerOffPercent,
                                                                      signal.TriggerOnPercent,
                                                                      signal.Value,
                                                                      cv,
                                                                      signal.Guid);
                    ces.AddSignal(cessig);
                }

                cess.Add(ces);
                if (ces.Signals.Count != es.Signals.Count)
                {
                    throw  new LPGException("Signal not initialized correctly");
                }
            }

            var calcEnergyStorages = cess; //,deviceTaggingSets);

            calchouse.SetStorages(calcEnergyStorages);
            //return calcEnergyStorages;
        }