Example #1
0
        public override void Run(HouseholdKey key, object o)
        {
            DayLightStatus dayLightStatus = (DayLightStatus)o;
            //List<EveryDayLightTimes> daylights = new List<EveryDayLightTimes>();
            var startTimeStep = 0;

            if (!_calcParameters.ShowSettlingPeriodTime)
            {
                startTimeStep = _calcParameters.DummyCalcSteps;
            }
            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Timestep", SqliteDataType.Integer);
            se.AddField("DateTime", SqliteDataType.Integer);
            se.AddField("Daylight", SqliteDataType.Bit);
            for (var i = startTimeStep; i < dayLightStatus.Status.Count; i++)
            {
                TimeStep ts        = new TimeStep(i, _calcParameters);
                string   timestamp = _dsc.MakeDateStringFromTimeStep(ts);
                se.AddRow(RowBuilder.Start("Timestep", ts.ExternalStep).Add("DateTime", timestamp).Add("Daylight", dayLightStatus.Status[i]).ToDictionary());
                //EveryDayLightTimes edlt = new EveryDayLightTimes(timestamp,timestep, );
                //daylights.Add(edlt);
            }
            _srls.SaveResultEntry(se);
        }
        private bool MakeErzeugerLastgang([NotNull][ItemNotNull] List <House> houses, [NotNull] LastgangBusinessAssignment assignment, [NotNull][ItemNotNull] List <RlmProfile> profiles,
                                          [NotNull] SaveableEntry <Prosumer> sa)
        {
            var selectedhouses = houses.Where(x => x.ErzeugerIDs.Contains(assignment.ErzeugerID)).ToList();

            if (selectedhouses.Count != 1)
            {
                if (selectedhouses.Count == 0)
                {
                    Log(MessageType.Info, "No house found for " + assignment.ErzeugerID);
                    return(true);
                }

                throw new Exception(selectedhouses.Count + " houses for erzeuger id " + assignment.ErzeugerID);
            }

            Hausanschluss ha = selectedhouses[0].Hausanschluss[0];
            //odo: adjust with new factors
            var rlmrprofile = profiles.Single(x => x.Name == assignment.RlmFilename);
            var pa          = new Prosumer(selectedhouses[0].HouseGuid, assignment.RlmFilename,
                                           ProsumerType.LastgangGeneration, null, selectedhouses[0].GebäudeObjectIDs[0], ha.HausanschlussGuid, ha.ObjectID)
            {
                Profile = rlmrprofile.Profile
            };

            sa.AddRow(pa);
            return(false);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var objects       = (List <IHouseholdKey>)o;
            var actionEntries = objects.ConvertAll(x => (SingleTimestepActionEntry)x).ToList();
            var rowEntries    = new List <Dictionary <string, object> >();

            foreach (var affordanceEnergyUseEntry in actionEntries)
            {
                rowEntries.Add(RowBuilder.Start("Timestep", affordanceEnergyUseEntry.TimeStep)
                               .Add("Json", JsonConvert.SerializeObject(affordanceEnergyUseEntry, Formatting.Indented)).ToDictionary());
            }

            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Timestep", SqliteDataType.Text);
            se.AddField("Json", SqliteDataType.Text);

            foreach (Dictionary <string, object> entry in rowEntries)
            {
                se.AddRow(entry);
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public bool PrepareLoadProfileIfNeeded([NotNull] ProviderParameterDto parameters)
        {
            Module.SetPrint(0);
            //var relevantPotentials = _pvPotentials.Where(x => x.HouseGuid == houseComponent.HouseGuid);
            PvSystemEntry entry = (PvSystemEntry)parameters.HouseComponent;
            int           idx   = 0;

            foreach (var area in entry.PVAreas)
            {
                var key    = MakeKeyFromPVArea(area);
                var keystr = key.GetKey();
                //key has been checked in this run
                if (_checkedKeys.Contains(keystr))
                {
                    continue;
                }

                _checkedKeys.Add(keystr);
                bool isInDb = _saveableEntries.CheckForName(keystr, MyLogger);
                if (isInDb)
                {
                    continue;
                }

                Info("Missing pv profile for " + keystr + ", generating...");
                PVSystemSettings pvs = new PVSystemSettings(key, 1, 1, MyLogger, idx++);
                var profile          = pvs.Run(Services.RunningConfig);
                _saveableEntries.AddRow(profile);
                _saveableEntries.SaveDictionaryToDatabase(MyLogger);
            }

            return(true);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var           objects       = (List <IHouseholdKey>)o;
            var           actionEntries = objects.ConvertAll(x => (PersonStatus)x).ToList();
            SaveableEntry se            = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("TimeStep", SqliteDataType.Text);
            se.AddField("PersonName", SqliteDataType.Text);
            se.AddField("AffordanceName", SqliteDataType.Text);
            se.AddField("LocationName", SqliteDataType.Text);
            se.AddField("SiteName", SqliteDataType.Text);
            se.AddField("Json", SqliteDataType.Text);
            foreach (var actionEntry in actionEntries)
            {
                se.AddRow(RowBuilder.Start("PersonName", actionEntry.PersonName).Add("AffordanceName", actionEntry.ActiveAffordance)
                          .Add("TimeStep", actionEntry.TimeStep).Add("LocationName", actionEntry.LocationName).Add("SiteName", actionEntry.SiteName)
                          .Add("Json", JsonConvert.SerializeObject(actionEntry, Formatting.Indented)).ToDictionary());
            }

            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }

            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var           objects = (List <IHouseholdKey>)o;
            var           transportationDeviceStateEntries = objects.ConvertAll(x => (ChargingStationState)x).ToList();
            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Time", SqliteDataType.Integer);
            se.AddField("ChargingStationName", SqliteDataType.Text);
            se.AddField("IsAvailable", SqliteDataType.Bit);
            se.AddField("CarName", SqliteDataType.Text);
            se.AddField("ChargingPower", SqliteDataType.Double);
            se.AddField("Json", SqliteDataType.JsonField);
            foreach (var ae in transportationDeviceStateEntries)
            {
                se.AddRow(RowBuilder.Start("Time", ae.TimeStep)
                          .Add("ChargingStationName", ae.ChargingStationName)
                          .Add("IsAvailable", ae.IsAvailable?1:0)
                          .Add("CarName", ae.ConnectedCarName)
                          .Add("ChargingPower", ae.ChargingPower)
                          .Add("Json", JsonConvert.SerializeObject(ae, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #7
0
        public override void Run(HouseholdKey key, object o)
        {
            var sets = (BridgeDayEntries)o;

            if (sets.Entries.Count == 0)
            {
                Logger.Info("No bridge days were found.");
                return;
            }
            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("BridgeDay", SqliteDataType.DateTime);
            se.AddField("BridgeDayJson", SqliteDataType.Text);

            foreach (var afftagset in sets.Entries)
            {
                se.AddRow(RowBuilder.Start("BridgeDay", afftagset)
                          .Add("BridgeDayJson", JsonConvert.SerializeObject(afftagset, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #8
0
        public override void Run(HouseholdKey key, object o)
        {
            var           objects = (List <LogMessageEntry>)o;
            SaveableEntry se      = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Time", SqliteDataType.DateTime);
            se.AddField("RelativeTime", SqliteDataType.DateTime);
            se.AddField("Message", SqliteDataType.Text);
            se.AddField("Severity", SqliteDataType.Text);
            se.AddField("MyStackTrace", SqliteDataType.Text);
            foreach (var lme in objects)
            {
                se.AddRow(RowBuilder.Start("Time", lme.Time)
                          .Add("Message", lme.Message)
                          .Add("RelativeTime", lme.RelativeTime)
                          .Add("Severity", lme.Severity.ToString())
                          .Add("MyStackTrace", lme.MyStackTrace)
                          .ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var           objects = (List <IHouseholdKey>)o;
            var           transportationDeviceStateEntries = objects.ConvertAll(x => (TransportationDeviceStateEntry)x).ToList();
            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Time", SqliteDataType.Integer);
            se.AddField("DateTime", SqliteDataType.Integer);
            se.AddField("DeviceName", SqliteDataType.Text);
            se.AddField("User", SqliteDataType.Text);
            se.AddField("DeviceState", SqliteDataType.Text);
            se.AddField("NumericDeviceState", SqliteDataType.Integer);
            se.AddField("CurrentRange", SqliteDataType.Double);
            se.AddField("CurrentSite", SqliteDataType.Text);
            se.AddField("Json", SqliteDataType.JsonField);
            foreach (var ae in transportationDeviceStateEntries)
            {
                se.AddRow(RowBuilder.Start("Time", ae.TimeStep)
                          .Add("DateTime", ae.DateTime)
                          .Add("DeviceName", ae.TransportationDeviceName)
                          .Add("User", ae.CurrentUser)
                          .Add("DeviceState", ae.TransportationDeviceState)
                          .Add("NumericDeviceState", (int)ae.TransportationDeviceStateEnum)
                          .Add("CurrentRange", ae.CurrentRange)
                          .Add("CurrentSite", ae.CurrentSite)
                          .Add("Json", JsonConvert.SerializeObject(ae, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var hh = (HouseholdKeyEntry)o;

            //check for duplicates
            if (!_savedKeys.Add(hh.HHKey))
            {
                return;
                //throw new LPGException("Householdkey already existed");
            }
            if (!_isTableCreated)
            {
                SaveableEntry se = GetStandardSaveableEntry(key);
                se.AddRow(RowBuilder.Start("Name", hh.HHKey)
                          .Add("Json", JsonConvert.SerializeObject(hh, Formatting.Indented)).ToDictionary());
                if (Srls == null)
                {
                    throw new LPGException("Data Logger was null.");
                }
                Srls.SaveResultEntry(se);
                _isTableCreated = true;
                return;
            }

            var dict = RowBuilder.Start("Name", hh.HHKey)
                       .Add("Json", JsonConvert.SerializeObject(hh, Formatting.Indented)).ToDictionary();

            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveDictionaryToDatabaseNewConnection(dict, TableName, Constants.GeneralHouseholdKey);
        }
        private void ArchiveOneEntry([NotNull] Prosumer prosumer)
        {
            _archiveCount++;
            if (prosumer.GenerationOrLoad == GenerationOrLoad.Load)
            {
                if (_loadSa == null)
                {
                    throw new FlaException("load was null");
                }
                _loadSa.AddRow(prosumer);
                if (_loadSa.RowEntries.Count > 50)
                {
                    _loadSa.SaveDictionaryToDatabase(_services.Logger);
                }
            }

            if (prosumer.GenerationOrLoad == GenerationOrLoad.Generation)
            {
                if (_generationSa == null)
                {
                    throw new FlaException("load was null");
                }
                _generationSa.AddRow(prosumer);
                if (_generationSa.RowEntries.Count > 50)
                {
                    _generationSa.SaveDictionaryToDatabase(_services.Logger);
                }
            }
        }
Example #12
0
        public override void Run(HouseholdKey key, object o)
        {
            TemperatureProfile tp = (TemperatureProfile)o;
            var tempProfile       = tp.GetTemperatureArray(_calcParameters.InternalStartTime,
                                                           _calcParameters.OfficialEndTime,
                                                           _calcParameters.InternalStepsize);
            DateStampCreator dsc = new DateStampCreator(_calcParameters);

            if (!_calcParameters.IsSet(CalcOption.TemperatureFile))
            {
                return;
            }

            // var allTemperatures = new List<UsedTemperatures>();
            SaveableEntry se = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Timestep", SqliteDataType.Integer);
            se.AddField("DateTime", SqliteDataType.Text);
            se.AddField("Temperature", SqliteDataType.Double);
            for (var i = 0; i < _calcParameters.OfficalTimesteps; i++)
            {
                string timestamp = dsc.MakeDateStringFromTimeStep(new TimeStep(i, 0, false));
                se.AddRow(RowBuilder.Start("Timestep", i).Add("DateTime", timestamp).Add("Temperature", tempProfile[i]).ToDictionary());
            }

            _srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var hh = (ResultFileEntry)o;

            if (!_isTableCreated)
            {
                SaveableEntry se = GetStandardSaveableEntry(key);
                se.AddRow(RowBuilder.Start("Name", Constants.GeneralHouseholdKey)
                          .Add("Json", JsonConvert.SerializeObject(hh, Formatting.Indented)).ToDictionary());
                if (Srls == null)
                {
                    throw new LPGException("Data Logger was null.");
                }
                Srls.SaveResultEntry(se);
                _isTableCreated = true;
            }
            else
            {
                var row = RowBuilder.Start("Name", Constants.GeneralHouseholdKey)
                          .Add("Json", JsonConvert.SerializeObject(hh, Formatting.Indented)).ToDictionary();
                if (Srls == null)
                {
                    throw new LPGException("Data Logger was null.");
                }
                Srls.SaveDictionaryToDatabaseNewConnection(row, TableName, Constants.GeneralHouseholdKey);
            }
        }
Example #14
0
        private static void SaveCityProfile([JetBrains.Annotations.NotNull] ChangableProfile cityload,
                                            [JetBrains.Annotations.NotNull] SaveableEntry <ArchiveEntry> saArchiveEntry,
                                            SummedLoadType name,
                                            GenerationOrLoad generationOrLoad)
        {
            AnalysisKey  key1 = new AnalysisKey(null, null, SumType.ByCity, generationOrLoad, null, name.ToString(), null);
            ArchiveEntry ae1  = new ArchiveEntry(name.ToString(), key1, cityload.ToProfile(), generationOrLoad, "City");

            saArchiveEntry.AddRow(ae1);
        }
Example #15
0
        public override void Run(HouseholdKey key, object o)
        {
            CalcParameters calcParameters = (CalcParameters)o;
            SaveableEntry  se             = GetStandardSaveableEntry(key);

            se.AddRow(RowBuilder.Start("Name", "CalcParameters").Add("Json", JsonConvert.SerializeObject(calcParameters, Formatting.Indented)).ToDictionary());
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #16
0
 public void SaveDictionaryCalcParametersTest()
 {
     using (WorkingDir wd = new WorkingDir(Utili.GetCurrentMethodAndClass()))
     {
         wd.ClearDirectory();
         var srl   = new SqlResultLoggingService(wd.WorkingDirectory);
         var hhkey = new HouseholdKey("hh0");
         ResultTableDefinition rtd = new ResultTableDefinition("tbl1", ResultTableID.AffordanceDefinitions, "tabledesc", CalcOption.BasicOverview);
         SaveableEntry         se  = new SaveableEntry(hhkey, rtd);
         se.AddField("Name", SqliteDataType.Text);
         se.AddField("Json", SqliteDataType.Text);
         se.AddRow(RowBuilder.Start("Name", "first").Add("Json", "[]").ToDictionary());
         srl.SaveResultEntry(se);
         wd.CleanUp();
     }
 }
        public override void Run(HouseholdKey key, object o)
        {
            SaveableEntry se   = GetStandardSaveableEntry(key);
            var           sets = (List <CalcAffordanceTaggingSetDto>)o;

            foreach (var afftagset in sets)
            {
                se.AddRow(RowBuilder.Start("Name", afftagset.Name)
                          .Add("Json", JsonConvert.SerializeObject(afftagset, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #18
0
        public override void Run(HouseholdKey key, object o)
        {
            SaveableEntry se      = GetStandardSaveableEntry(key);
            var           objects = (List <AffordanceEnergyUseEntry>)o;

            //var affordanceEnergyUseEntries = objects.ConvertAll(x => (AffordanceEnergyUseEntry) x).ToList();
            foreach (var ae in objects)
            {
                se.AddRow(RowBuilder.Start("Name", ae.AffordanceName)
                          .Add("Json", JsonConvert.SerializeObject(ae, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #19
0
        public override void Run(HouseholdKey key, object o)
        {
            SaveableEntry se      = GetStandardSaveableEntry(key);
            var           objects = (List <IHouseholdKey>)o;
            var           transportationDeviceDtos = objects.ConvertAll(x => (CalcTravelRouteDto)x).ToList();

            foreach (var device in transportationDeviceDtos)
            {
                se.AddRow(RowBuilder.Start("Name", device.Name)
                          .Add("Json", JsonConvert.SerializeObject(device, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            SaveableEntry se                  = GetStandardSaveableEntry(key);
            var           objects             = (List <IHouseholdKey>)o;
            var           variableDefinitions = objects.ConvertAll(x => (CalcVariableDto)x).ToList();

            foreach (var calcPersonDto in variableDefinitions)
            {
                se.AddRow(RowBuilder.Start("Name", calcPersonDto.Name)
                          .Add("Json", JsonConvert.SerializeObject(calcPersonDto, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            var actionEntries = (List <TransportationDeviceEventStatistics>)o;
            //var actionEntries = objects.ConvertAll(x => (TransportationDeviceStatisticsEntry)x).ToList();
            SaveableEntry se = GetStandardSaveableEntry(key);

            foreach (var actionEntry in actionEntries)
            {
                se.AddRow(RowBuilder.Start("Name", actionEntry.TransportationDevice)
                          .Add("Json", JsonConvert.SerializeObject(actionEntry, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #22
0
        public override void Run(HouseholdKey key, object o)
        {
            var           objects        = (List <IHouseholdKey>)o;
            var           calcVarEntries = objects.ConvertAll(x => (CalcVariableEntry)x).ToList();
            SaveableEntry se             = GetStandardSaveableEntry(key);

            se.AddField("TimeStep", SqliteDataType.Integer);
            foreach (var actionEntry in calcVarEntries)
            {
                se.AddRow(RowBuilder.Start("Name", actionEntry.Name).Add("Timestep", actionEntry.TimeStep)
                          .Add("Json", JsonConvert.SerializeObject(actionEntry, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
        public override void Run(HouseholdKey key, object o)
        {
            if (key != Constants.GeneralHouseholdKey)
            {
                throw new LPGException("Trying to save load types not in the general file");
            }
            List <CalcLoadTypeDto> calcLoadTypeDtoDictionary = (List <CalcLoadTypeDto>)o;
            SaveableEntry          se = GetStandardSaveableEntry(key);

            foreach (CalcLoadTypeDto dto in calcLoadTypeDtoDictionary)
            {
                se.AddRow(RowBuilder.Start("Name", dto.Name).Add("Json", JsonConvert.SerializeObject(dto, Formatting.Indented)).ToDictionary());
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #24
0
        public override void Run(HouseholdKey key, object o)
        {
            var           objects       = (List <IHouseholdKey>)o;
            var           actionEntries = objects.ConvertAll(x => (TransportationStatus)x).ToList();
            SaveableEntry se            = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("TimeStep", SqliteDataType.Integer);
            se.AddField("Message", SqliteDataType.Text);
            foreach (var actionEntry in actionEntries)
            {
                se.AddRow(RowBuilder.Start("Message", actionEntry.StatusMessage).Add("TimeStep", actionEntry.Timestep).ToDictionary());
            }

            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }

            Srls.SaveResultEntry(se);
        }
        public void TestCreationSavingAndKeyCheck()
        {
            SqlConnectionPreparer ms = new SqlConnectionPreparer(Config);
            var     db = ms.GetDatabaseConnection(Stage.Testing, Constants.PresentSlice);
            Profile p  = new Profile("myProfile", new List <double>().AsReadOnly(), EnergyOrPower.Power);
            SaveableEntry <Profile> sa = SaveableEntry <Profile> .GetSaveableEntry(db, SaveableEntryTableType.PVGeneration, Logger);

            sa.MakeCleanTableForListOfFields(true);
            sa.MakeTableForListOfFieldsIfNotExists(true);
            string myKey = p.Name;

            if (sa.CheckForName(myKey, Logger))
            {
                throw new FlaException("Key already exists in cleared db");
            }

            sa.AddRow(p);
            sa.SaveDictionaryToDatabase(Logger);
            if (!sa.CheckForName(myKey, Logger))
            {
                throw new FlaException("Saving failed. Key not in db");
            }
        }
        public override void Run(HouseholdKey key, object o)
        {
            var objects       = (List <IHouseholdKey>)o;
            var actionEntries = objects.ConvertAll(x => (TotalsPerLoadtypeEntry)x).ToList();
            var rowEntries    = new List <Dictionary <string, object> >();

            foreach (var actionEntry in actionEntries)
            {
                rowEntries.Add(RowBuilder.Start("Name", actionEntry.Loadtype.Name)
                               .Add("Json", JsonConvert.SerializeObject(actionEntry, Formatting.Indented)).ToDictionary());
            }

            SaveableEntry se = GetStandardSaveableEntry(key);

            foreach (Dictionary <string, object> entry in rowEntries)
            {
                se.AddRow(entry);
            }
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }
            Srls.SaveResultEntry(se);
        }
Example #27
0
        public override void Run(HouseholdKey key, object o)
        {
            CalcStartParameterSet csps = (CalcStartParameterSet)o;
            SaveableEntry         se   = new SaveableEntry(key, ResultTableDefinition);

            se.AddField("Name", SqliteDataType.Text);
            se.AddField("Value", SqliteDataType.Text);
            se.AddRow(RowBuilder.Start("Name", "CsvCharacter").Add("Value", csps.CsvCharacter).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "Temperature Profile").Add("Value", csps.TemperatureProfile.Name).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "AffordanceRepetitionCount").Add("Value", csps.AffordanceRepetitionCount.ToString(CultureInfo.InvariantCulture)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "CalcOptions").Add("Value", JsonConvert.SerializeObject(csps.CalcOptions, Formatting.Indented)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "CalcTarget").Add("Value", csps.CalcTarget.Name).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "DeleteDatFiles").Add("Value", csps.DeleteDatFiles.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "DeviceSelection").Add("Value", csps.DeviceSelection?.Name ?? "None").ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "EnergyIntensity").Add("Value", csps.EnergyIntensity.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "ExternalTimeResolution").Add("Value", csps.ExternalTimeResolution.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "GeographicLocation").Add("Value", csps.GeographicLocation.Name).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "InternalTimeResolution").Add("Value", csps.InternalTimeResolution.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "LPGVersion").Add("Value", csps.LPGVersion).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "LoadTypePriority").Add("Value", csps.LoadTypePriority.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "OfficialSimulationStartTime").Add("Value", csps.OfficialSimulationStartTime.ToString(CultureInfo.InvariantCulture)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "OfficialSimulationEndTime").Add("Value", csps.OfficialSimulationEndTime.ToString(CultureInfo.InvariantCulture)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "SelectedRandomSeed").Add("Value", csps.SelectedRandomSeed.ToString(CultureInfo.InvariantCulture)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "SettlingDays").Add("Value", csps.SettlingDays.ToString(CultureInfo.InvariantCulture)).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "ShowSettlingPeriod").Add("Value", csps.ShowSettlingPeriod.ToString()).ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "TransportationDeviceSet").Add("Value", csps.TransportationDeviceSet?.Name ?? "None").ToDictionary());
            se.AddRow(RowBuilder.Start("Name", "TravelRouteSet").Add("Value", csps.TravelRouteSet?.Name ?? "None").ToDictionary());
            if (Srls == null)
            {
                throw new LPGException("Data Logger was null.");
            }

            Srls.SaveResultEntry(se);
        }