/// <summary> /// starter for real calcs /// </summary> public CalcStartParameterSet( [NotNull] Func <bool, string, ObservableCollection <ResultFileEntry>, bool> reportFinishFuncForHouseAndSettlement, [NotNull] Func <bool, string, string, bool> reportFinishFuncForHousehold, [NotNull] Func <object, bool> openTabFunc, [CanBeNull] ILPGDispatcher dispatcher, [NotNull] GeographicLocation geographicLocation, [NotNull] TemperatureProfile temperatureProfile, [NotNull] ICalcObject calcTarget, EnergyIntensityType energyIntensity, [NotNull] Func <bool> reportCancelFunc, bool resumeSettlement, [CanBeNull] DeviceSelection deviceSelection, LoadTypePriority loadTypePriority, [CanBeNull] TransportationDeviceSet transportationDeviceSet, [CanBeNull] TravelRouteSet travelRouteSet, [NotNull] List <CalcOption> calcOptions, DateTime officialSimulationStartTime, DateTime officialSimulationEndTime, TimeSpan internalTimeResolution, [NotNull] string csvCharacter, int selectedRandomSeed, TimeSpan externalTimeResolution, bool deleteDatFiles, bool writeExcelColumn, bool showSettlingPeriod, int settlingDays, int affordanceRepetitionCount, [NotNull] CalculationProfiler calculationProfiler, [CanBeNull] ChargingStationSet chargingStationSet, [CanBeNull][ItemNotNull] List <string> loadTypesToProcess, DeviceProfileHeaderMode deviceProfileHeaderMode, bool ignorePreviousActivitiesWhenNeeded, string resultPath, bool transportationEnabled) { IgnorePreviousActivitiesWhenNeeded = ignorePreviousActivitiesWhenNeeded; ResultPath = resultPath; LoadTypesToProcess = loadTypesToProcess; ExternalTimeResolution = externalTimeResolution; DeleteDatFiles = deleteDatFiles; WriteExcelColumn = writeExcelColumn; ShowSettlingPeriod = showSettlingPeriod; SettlingDays = settlingDays; AffordanceRepetitionCount = affordanceRepetitionCount; CalculationProfiler = calculationProfiler; SelectedRandomSeed = selectedRandomSeed; OfficialSimulationStartTime = officialSimulationStartTime; OfficialSimulationEndTime = officialSimulationEndTime; InternalTimeResolution = internalTimeResolution; CsvCharacter = csvCharacter; ReportFinishFuncForHouseAndSettlement = reportFinishFuncForHouseAndSettlement; ReportFinishFuncForHousehold = reportFinishFuncForHousehold; OpenTabFunc = openTabFunc; Dispatcher = dispatcher; GeographicLocation = geographicLocation; TemperatureProfile = temperatureProfile; CalcTarget = calcTarget; EnergyIntensity = energyIntensity; ReportCancelFunc = reportCancelFunc; ResumeSettlement = resumeSettlement; LPGVersion = Utili.GetCurrentAssemblyVersion(); DeviceSelection = deviceSelection; LoadTypePriority = loadTypePriority; TransportationDeviceSet = transportationDeviceSet; TravelRouteSet = travelRouteSet; CalcOptions = calcOptions; ChargingStationSet = chargingStationSet; DeviceProfileHeaderMode = deviceProfileHeaderMode; CalculationStartTime = DateTime.Now; TransportationEnabled = transportationEnabled; }
private static HouseHousehold AssignFields([NotNull] DataReader dr, [NotNull] string connectionString, bool ignoreMissingFields, [NotNull] AllItemCollections aic) { var id = dr.GetIntFromLong("ID"); var houseID = dr.GetIntFromLong("HouseID"); var householdID = dr.GetNullableIntFromLong("HouseholdID", false); ICalcObject calcObject = aic.ModularHouseholds.FirstOrDefault(hh1 => hh1.ID == householdID); var householdname = string.Empty; if (calcObject != null) { householdname = calcObject.Name; } var guid = GetGuid(dr, ignoreMissingFields); int chargingSetID = dr.GetIntFromLong("ChargingSetID", false, ignoreMissingFields); var chargingStation = aic.ChargingStationSets.FirstOrDefault(x => x.ID == chargingSetID); int transportationDeviceSetID = dr.GetIntFromLong("TransportationDeviceSetID", false, ignoreMissingFields); var transportationDeviceSet = aic.TransportationDeviceSets.FirstOrDefault(x => x.ID == transportationDeviceSetID); int travelrouteSetID = dr.GetIntFromLong("TravelRouteSetID", false, ignoreMissingFields); var travelrouteSet = aic.TravelRouteSets.FirstOrDefault(x => x.ID == travelrouteSetID); return(new HouseHousehold(id, houseID, calcObject, connectionString, householdname, guid, transportationDeviceSet, chargingStation, travelrouteSet)); }
public SettlementHH([CanBeNull] int?pID, [CanBeNull] ICalcObject pHH, int count, [CanBeNull] int?settlementID, [NotNull] string connectionString, [NotNull] string householdName, StrGuid guid) : base(householdName, TableName, connectionString, guid) { TypeDescription = "Settlement Household"; ID = pID; Count = count; _settlementID = settlementID; _calcObject = pHH; }
public HouseHousehold([CanBeNull] int?pID, int houseID, [CanBeNull] ICalcObject household, [NotNull] string connectionString, [NotNull] string householdName, StrGuid guid, [CanBeNull] TransportationDeviceSet transportationDeviceSet, [CanBeNull] ChargingStationSet chargingStationSet, [CanBeNull] TravelRouteSet travelRouteSet) : base(householdName, TableName, connectionString, guid) { ID = pID; HouseID = houseID; _household = household; TransportationDeviceSet = transportationDeviceSet; ChargingStationSet = chargingStationSet; TravelRouteSet = travelRouteSet; TypeDescription = "House Household"; }
public HouseholdPlan([NotNull] string name, [CanBeNull] AffordanceTaggingSet taggingSet, [CanBeNull] ICalcObject calcObject, [NotNull] string description, [NotNull] string connectionString, StrGuid guid, [CanBeNull] int?pID = null) : base( name, TableName, connectionString, guid) { _entries = new ObservableCollection <HouseholdPlanEntry>(); ID = pID; TypeDescription = "Household Plan"; _description = description; _taggingSet = taggingSet; _calcObject = calcObject; }
public bool ItemExists([NotNull] ICalcObject mycalcObject, [NotNull] GeographicLocation geoloc, [NotNull] TemperatureProfile temperatureProfile, EnergyIntensityType intensity, [NotNull] string lpgVersion) { foreach (var co in MyItems) { if (co.HouseholdName == mycalcObject.Name && co.GeographicLocationName == geoloc.Name && co.TemperatureProfile == temperatureProfile.Name && co.EnergyIntensity == intensity.ToString() && co.LPGVersion == lpgVersion) { return(true); } } return(false); }
//public const string TableName = "CalcStartParameterSet"; /// <summary> /// starter for unit tests /// </summary> public CalcStartParameterSet( [NotNull] GeographicLocation geographicLocation, [NotNull] TemperatureProfile temperatureProfile, [NotNull] ICalcObject calcTarget, EnergyIntensityType energyIntensity, bool resumeSettlement, [CanBeNull] DeviceSelection deviceSelection, LoadTypePriority loadTypePriority, [CanBeNull] TransportationDeviceSet transportationDeviceSet, [CanBeNull] ChargingStationSet chargingStationSet, [CanBeNull] TravelRouteSet travelRouteSet, [NotNull] List <CalcOption> calcOptions, DateTime officialSimulationStartTime, DateTime officialSimulationEndTime, TimeSpan internalTimeResolution, [NotNull] string csvCharacter, int selectedRandomSeed, TimeSpan externalTimeResolution, bool deleteDatFiles, bool writeExcelColumn, bool showSettlingPeriod, int settlingDays, int affordanceRepetitionCount, [NotNull] CalculationProfiler calculationProfiler, string resultPath, bool transportationEnabled) { OfficialSimulationStartTime = officialSimulationStartTime; OfficialSimulationEndTime = officialSimulationEndTime; InternalTimeResolution = internalTimeResolution; CsvCharacter = csvCharacter; SelectedRandomSeed = selectedRandomSeed; ExternalTimeResolution = externalTimeResolution; DeleteDatFiles = deleteDatFiles; WriteExcelColumn = writeExcelColumn; ShowSettlingPeriod = showSettlingPeriod; SettlingDays = settlingDays; AffordanceRepetitionCount = affordanceRepetitionCount; CalculationProfiler = calculationProfiler; GeographicLocation = geographicLocation; TemperatureProfile = temperatureProfile; CalcTarget = calcTarget; EnergyIntensity = energyIntensity; ResumeSettlement = resumeSettlement; LPGVersion = Utili.GetCurrentAssemblyVersion(); DeviceSelection = deviceSelection; LoadTypePriority = loadTypePriority; TransportationDeviceSet = transportationDeviceSet; TravelRouteSet = travelRouteSet; CalcOptions = calcOptions; ChargingStationSet = chargingStationSet; DeviceProfileHeaderMode = DeviceProfileHeaderMode.Standard; ResultPath = resultPath; CalculationStartTime = DateTime.Now; TransportationEnabled = transportationEnabled; }
private void RegisterEverything([NotNull] Simulator sim, [NotNull] string resultpath, [NotNull] CalcStartParameterSet csps, [NotNull] ICalcObject hh, [NotNull] ContainerBuilder builder, [NotNull] string sqlFileName, [NotNull] CalcParameters calcParameters, [CanBeNull] DeviceSelection ds) { builder.Register(c => new SqlResultLoggingService(sqlFileName)).As <SqlResultLoggingService>() .SingleInstance(); builder.Register(c => calcParameters).As <CalcParameters>().SingleInstance(); Random rnd = new Random(calcParameters.ActualRandomSeed); builder.Register(c => rnd).As <Random>().SingleInstance(); builder.Register(c => csps.CalculationProfiler).As <CalculationProfiler>().SingleInstance(); builder.Register(c => new NormalRandom(0, 0.1, rnd)).As <NormalRandom>().SingleInstance(); builder.RegisterType <OnlineDeviceActivationProcessor>().As <IOnlineDeviceActivationProcessor>() .SingleInstance(); builder.RegisterType <CalcHouseFactory>().As <CalcHouseFactory>().SingleInstance(); builder.RegisterType <CalcManager>().As <CalcManager>().SingleInstance(); builder.RegisterType <AffordanceTaggingSetFactory>().As <AffordanceTaggingSetFactory>().SingleInstance(); builder.Register(x => CalcLoadTypeDtoFactory.MakeLoadTypes(sim.LoadTypes.It, calcParameters.InternalStepsize, csps.LoadTypePriority)) .As <CalcLoadTypeDtoDictionary>().SingleInstance(); builder.Register(x => CalcLoadTypeFactory.MakeLoadTypes(x.Resolve <CalcLoadTypeDtoDictionary>())) .As <CalcLoadTypeDictionary>().SingleInstance(); //builder.Register(x =>ds).As<DeviceSelection>().SingleInstance(); builder.Register(x => { CalcDeviceTaggingSetFactory ctsf = new CalcDeviceTaggingSetFactory(x.Resolve <CalcParameters>(), x.Resolve <CalcLoadTypeDtoDictionary>()); return(ctsf.GetDeviceTaggingSets(sim, hh.CalculatePersonCount())); }).As <CalcDeviceTaggingSets>().SingleInstance(); builder.Register(x => new DeviceCategoryPicker(rnd, ds)).As <IDeviceCategoryPicker>().SingleInstance(); builder.RegisterType <CalcModularHouseholdFactory>().As <CalcModularHouseholdFactory>().SingleInstance(); builder.RegisterType <CalcHouseFactory>().As <CalcHouseFactory>().SingleInstance(); builder.RegisterType <CalcLocationFactory>().As <CalcLocationFactory>().SingleInstance(); builder.RegisterType <CalcPersonFactory>().As <CalcPersonFactory>().SingleInstance(); builder.RegisterType <CalcDeviceFactory>().As <CalcDeviceFactory>().SingleInstance(); builder.RegisterType <CalcRepo>().As <CalcRepo>().SingleInstance(); builder.RegisterType <CalcAffordanceFactory>().As <CalcAffordanceFactory>().SingleInstance(); builder.RegisterType <CalcTransportationFactory>().As <CalcTransportationFactory>().SingleInstance(); builder.RegisterType <CalcVariableDtoFactory>().As <CalcVariableDtoFactory>().SingleInstance(); builder.RegisterType <VacationDtoFactory>().As <VacationDtoFactory>().SingleInstance(); builder.RegisterType <CalcVariableRepository>().As <CalcVariableRepository>().SingleInstance(); builder.RegisterType <TemperatureDataLogger>().As <TemperatureDataLogger>().SingleInstance(); builder.Register(x => new FileFactoryAndTracker(resultpath, hh.Name, x.Resolve <IInputDataLogger>())) .As <FileFactoryAndTracker>().SingleInstance(); builder.Register(_ => new SqlResultLoggingService(resultpath)).As <SqlResultLoggingService>().SingleInstance(); builder.Register(x => new DateStampCreator(x.Resolve <CalcParameters>())).As <DateStampCreator>().SingleInstance(); builder.Register(c => new OnlineLoggingData(c.Resolve <DateStampCreator>(), c.Resolve <IInputDataLogger>(), c.Resolve <CalcParameters>())) .As <OnlineLoggingData>().As <IOnlineLoggingData>().SingleInstance(); builder.Register(x => new LogFile(calcParameters, x.Resolve <FileFactoryAndTracker>())).As <ILogFile>().SingleInstance(); builder.RegisterType <AffordanceTaggingSetFactory>().As <AffordanceTaggingSetFactory>(); builder.RegisterType <CalcPersonDtoFactory>().As <CalcPersonDtoFactory>(); builder.RegisterType <CalcDeviceDtoFactory>().As <CalcDeviceDtoFactory>(); builder.RegisterType <CalcLocationDtoFactory>().As <CalcLocationDtoFactory>(); builder.RegisterType <CalcAffordanceDtoFactory>().As <CalcAffordanceDtoFactory>(); builder.RegisterType <CalcHouseDtoFactory>().As <CalcHouseDtoFactory>(); builder.RegisterType <CalcModularHouseholdDtoFactory>().As <CalcModularHouseholdDtoFactory>(); builder.RegisterType <AvailabilityDtoRepository>().As <AvailabilityDtoRepository>().SingleInstance(); builder.RegisterType <CalcTransportationDtoFactory>().As <CalcTransportationDtoFactory>(); //data save loggers + input data loggers builder.RegisterType <InputDataLogger>().As <IInputDataLogger>().SingleInstance(); builder.RegisterType <CalcParameterLogger>().As <IDataSaverBase>(); builder.RegisterType <DeviceTaggingSetLogger>().As <IDataSaverBase>(); builder.RegisterType <HouseholdDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <DaylightTimesLogger>().As <IDataSaverBase>(); builder.RegisterType <TemperatureDataLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcStartParameterSetLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcLoadTypeDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <ActionEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcPersonDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcDeviceDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcAutoDevDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcVariableDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <HouseholdKeyLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcObjectInformationLogger>().As <IDataSaverBase>(); builder.RegisterType <BodilyActivityLevelStatisticsLogger>().As <IDataSaverBase>(); builder.RegisterType <ResultFileEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcAffordanceDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcAffordanceTaggingSetDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <DeviceActivationEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <ColumnEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <BridgeDayEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <HouseDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <LocationEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcSiteDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcTransportationDeviceDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <CalcTravelRouteDtoLogger>().As <IDataSaverBase>(); builder.RegisterType <TransportationEventLogger>().As <IDataSaverBase>(); builder.RegisterType <TransportationStatusLogger>().As <IDataSaverBase>(); builder.RegisterType <PersonStatusLogger>().As <IDataSaverBase>(); builder.RegisterType <TransportationStateEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <ChargingStationStateLogger>().As <IDataSaverBase>(); builder.RegisterType <VariableEntryLogger>().As <IDataSaverBase>(); builder.RegisterType <TransportationDeviceStatisticsLogger>().As <IDataSaverBase>(); builder.RegisterType <AffordanceEnergyUseLogger>().As <IDataSaverBase>(); //builder.Register(x=> x.Resolve<CalcVariableDtoFactory>().GetRepository()).As<CalcVariableRepository>().SingleInstance(); builder.Register(x => MakeLightNeededArray(csps.GeographicLocation, csps.TemperatureProfile, rnd, new List <VacationTimeframe>(), hh.Name, calcParameters)).As <DayLightStatus>().SingleInstance(); }
private static ICalcAbleObject MakeCalcHouseholdObject([NotNull] Simulator sim, [NotNull] CalcStartParameterSet csps, [NotNull] ICalcObject hh, [NotNull] ILifetimeScope scope, [NotNull] CalcVariableDtoFactory cvrdto, [NotNull] CalcVariableRepository variableRepository, out CalcObjectType cot, [NotNull] CalcRepo calcRepo) { var cmhdf = scope.Resolve <CalcModularHouseholdDtoFactory>(); HouseholdKey householdKey = new HouseholdKey("HH1"); CalcHouseholdDto dto = cmhdf.MakeCalcModularHouseholdDto(sim, (ModularHousehold)hh, csps.TemperatureProfile, householdKey, csps.GeographicLocation, out _, csps.TransportationDeviceSet, csps.TravelRouteSet, csps.EnergyIntensity, csps.ChargingStationSet); var cmhf = scope.Resolve <CalcModularHouseholdFactory>(); /*foreach (var v in dto.CalcVariables) * { * variableRepository.RegisterVariable(new CalcVariable(v.Name, v.Guid, v.Value, v.LocationName, v.LocationGuid, v.HouseholdKey)); * }*/ foreach (HouseholdKeyEntry entry in dto.GetHouseholdKeyEntries()) { calcRepo.InputDataLogger.Save(Constants.GeneralHouseholdKey, entry); } calcRepo.InputDataLogger.Save(Constants.GeneralHouseholdKey, dto); RegisterAllDtoVariables(cvrdto, variableRepository); ICalcAbleObject ch = cmhf.MakeCalcModularHousehold(dto, out _, null, null, calcRepo); cot = CalcObjectType.ModularHousehold; return(ch); }
private static ICalcAbleObject MakeCalcHouseObject([NotNull] Simulator sim, [NotNull] CalcStartParameterSet csps, [NotNull] ICalcObject hh, [NotNull] ILifetimeScope scope, [NotNull] CalcVariableDtoFactory cvrdto, [NotNull] CalcVariableRepository variableRepository, out CalcObjectType cot, [NotNull] CalcRepo calcRepo) { var house = (House)hh; calcRepo.FileFactoryAndTracker.RegisterHousehold(Constants.HouseKey, "House Infrastructure", HouseholdKeyType.House, "House Infrastructure", house.Name, house.Description); var housedtoFac = scope.Resolve <CalcHouseDtoFactory>(); var housedto = housedtoFac.MakeHouseDto(sim, house, csps.TemperatureProfile, csps.GeographicLocation, csps.EnergyIntensity); foreach (HouseholdKeyEntry entry in housedto.GetHouseholdKeyEntries()) { calcRepo.InputDataLogger.Save(Constants.GeneralHouseholdKey, entry); } var convertedAutoDevList = housedto.AutoDevs.ConvertAll(x => (IHouseholdKey)x).ToList(); if (calcRepo.CalcParameters.Options.Contains(CalcOption.HouseholdContents)) { calcRepo.InputDataLogger.SaveList(convertedAutoDevList); calcRepo.InputDataLogger.Save(Constants.GeneralHouseholdKey, housedto); } var chf = scope.Resolve <CalcHouseFactory>(); RegisterAllDtoVariables(cvrdto, variableRepository); ICalcAbleObject ch = chf.MakeCalcHouse(housedto, calcRepo); cot = CalcObjectType.House; return(ch); }
private static DeviceSelection GetDeviceSelection([NotNull] CalcStartParameterSet csps, [NotNull] ICalcObject hh, [CanBeNull] ModularHousehold chh) { // device selection DeviceSelection ds = null; if (csps.DeviceSelection != null) { ds = csps.DeviceSelection; } else { if (chh != null) { ds = chh.DeviceSelection; } if (hh.CalcObjectType == CalcObjectType.House) { var house = (House)hh; foreach (var houseHousehold in house.Households) { var houseModularHousehold = houseHousehold.CalcObject as ModularHousehold; if (houseModularHousehold?.DeviceSelection != null) { ds = houseModularHousehold.DeviceSelection; } } } } return(ds); }