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);
        }
コード例 #2
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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 /// <summary>
 /// 配置
 /// </summary>
 private void Config(RowBuilder builder)
 {
     ConfigId(builder);
     ConfigColumns(builder);
     ConfigEvents(builder);
     builder.AddSelected(_tableId);
 }
コード例 #5
0
        protected override void RunActualProcess()
        {
            var           dbRaw   = Services.SqlConnectionPreparer.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice);
            var           dbHouse = Services.SqlConnectionPreparer.GetDatabaseConnection(Stage.Houses, Constants.PresentSlice);
            var           houses  = dbHouse.Fetch <House>();
            var           ebbe    = dbRaw.Fetch <EnergiebedarfsdatenBern>();
            RowCollection rc      = new RowCollection("Analysis", "Analysis");

            foreach (var house in houses)
            {
                RowBuilder rb       = RowBuilder.Start("House", house.ComplexName);
                var        ebbedata = ebbe.Where(x => house.EGIDs.Contains((int)x.egid)).ToList();
                foreach (var ebbeSet in ebbedata)
                {
                    ebbe.Remove(ebbeSet);
                }

                rb.Add("Ebbe", JsonConvert.SerializeObject(ebbedata));
                rc.Add(rb);
            }

            foreach (var ebbeset in ebbe)
            {
                RowBuilder rb = RowBuilder.Start("Ebbe eGid", ebbeset.egid);
                rb.Add("Ebbe", JsonConvert.SerializeObject(ebbeset));
                rc.Add(rb);
            }

            var fn = MakeAndRegisterFullFilename("HeatingSystemAnalysis.xlsx", Constants.PresentSlice);

            XlsxDumper.WriteToXlsx(fn, rc);
        }
コード例 #6
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);
        }
コード例 #7
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);
        }
コード例 #8
0
        public void RowClick(bool apply)
        {
            RowBuilder <TableEntity> builder = _builder.RowClick("jsFunc", apply);

            _builder.Config.RowClick.Should().Be(apply ? "jsFunc" : null);
            builder.Should().BeSameAs(_builder);
        }
コード例 #9
0
        public void Contextual(bool apply)
        {
            RowBuilder <TableEntity> builder = _builder.Contextual(ContextualState.Danger, apply);

            _builder.Config.State.Should().Be(apply ? ContextualState.Danger : ContextualState.Default);
            builder.Should().BeSameAs(_builder);
        }
コード例 #10
0
        public void NavigationUrl()
        {
            RowBuilder <TableEntity> builder = _builder.NavigationUrl("Url");

            _builder.Config.NavigationUrl.Should().Be("Url");
            builder.Should().BeSameAs(_builder);
        }
        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);
        }
コード例 #12
0
ファイル: RowBuilderSpec.cs プロジェクト: drunkcod/Cone
 public void collect_lambda()
 {
     Func<int> lambda = () => 42;
     var rows = new RowBuilder<RowBuilderSpec>()
         .Add(x => x.Lambda(lambda));
     Check.That(() => (Func<int>)rows[0].Parameters[0] == lambda);
 }
コード例 #13
0
        protected override void RunActualProcess([NotNull][ItemNotNull] List <ScenarioSliceParameters> allSlices, [NotNull] AnalysisRepository analysisRepo)
        {
            Info("starting to make house results");
            var sheets = new List <RowCollection>();

            foreach (var slice in allSlices)
            {
                RowCollection rc          = new RowCollection(slice.DstScenario.ShortName + "_" + slice.DstYear, slice.DstScenario.Name + " - " + slice.DstYear);
                var           pventries   = analysisRepo.GetSlice(slice).Fetch <PvSystemEntry>();
                var           houses      = analysisRepo.GetSlice(slice).Fetch <House>();
                var           pvPotential = analysisRepo.GetSlice(slice).Fetch <PVPotential>();
                foreach (var house in houses)
                {
                    var pventriesInHouse = pventries.GetByReferenceGuidWithEmptyReturns(house.HouseGuid, "HouseGuid", y => y.HouseGuid);
                    var rb = RowBuilder.Start("House", house.ComplexName);
                    var pvPotentialsInHouse = pvPotential.GetByReferenceGuidWithEmptyReturns(house.HouseGuid, "HouseGuid", y => y.HouseGuid);
                    rb.Add("PV entries", pventriesInHouse.Count);
                    if (pventriesInHouse.Count > 0)
                    {
                        rb.Add("PV Year", pventriesInHouse.Max(x => x.BuildYear));
                    }

                    rb.Add("EnergySum", pventriesInHouse.Sum(x => x.EffectiveEnergyDemand));
                    rb.Add("Potential Count", pvPotentialsInHouse.Count);
                    rb.Add("Potential Energy Sum", pvPotentialsInHouse.Sum(x => x.SonnendachStromErtrag));
                    rc.Add(rb);
                }
                sheets.Add(rc);
            }

            var fn = MakeAndRegisterFullFilename("PVAnalysis.xlsx", Constants.PresentSlice);

            XlsxDumper.WriteToXlsx(fn, sheets);
        }
コード例 #14
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);
        }
コード例 #15
0
        /// <summary>
        /// 获取标签生成器
        /// </summary>
        protected override TagBuilder GetTagBuilder()
        {
            var builder = new RowBuilder();

            Config(builder);
            return(builder);
        }
コード例 #16
0
        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);
        }
コード例 #17
0
ファイル: RowRender.cs プロジェクト: zjxbetter/Util
 /// <summary>
 /// 配置列集合
 /// </summary>
 private void ConfigColumns(RowBuilder builder)
 {
     if (_config.Contains(UiConst.Columns))
     {
         builder.AddColumns(_config.GetValue(UiConst.Columns));
     }
 }
コード例 #18
0
 public void SetUp()
 {
     _collection = new SnapshotCollection();
     _collection.DefineTable("Test").CompareKey("Key");
     _snapshot = _collection.NewSnapshot("TestSnapshot");
     _row      = _snapshot.AddNewRow("Test");
 }
コード例 #19
0
        public static FormViewModel CreateForm()
        {
            var htmlContent = new HtmlElementBuilder().SetName("HtmlContent").SetContent(
                "<h2 style=\"text-align: center;\"><strong>Demo Form<br /></strong></h2>\r\n<p>Test HTML Content embedded in the demo form</p>\r\n<ul>\r\n<li>FirstName / LastName</li>\r\n<li>Years of experiance</li>\r\n<li>Accept Terms and Conditions</li>\r\n<li>Submit</li>\r\n</ul>")
                              .Build();

            var firstNameText = new TextElementBuilder()
                                .SetName("First Name")
                                .SetLabel(ElementLabel.Left("First Name: "))
                                .SetDefaultValue("First Name")
                                .AddRules(
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MaximumLength_Validator(10))
                .WithFailMessage("First Name must be less then 10 characters"),
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MinimunLength_Validator(2))
                .WithFailMessage("First Name must be greater then 2 characters"))
                                .Build();

            var lastNameText = new TextElementBuilder()
                               .SetName("Last Name")
                               .SetLabel(ElementLabel.Left("Last Name: "))
                               .SetDefaultValue("Last Name")
                               .AddRules(
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MaximumLength_Validator(10))
                .WithFailMessage("Last Name must be less then 10 characters"),
                ValidationRule <ITextElementViewModel> .Create(new TextElement_MinimunLength_Validator(2))
                .WithFailMessage("Last Name must be greater then 2 characters"))
                               .Build();

            var personalDetails = new ColumnBuilder().SetName("personalDetails")
                                  .AddChildren(firstNameText, lastNameText).Build();


            var experienceSelection = new SelectElementBuilder().SetName("experienceSelection")
                                      .SetLabel(ElementLabel.Left("How many years experience have you got?")).AddValues("0-1", "1-5", "5+")
                                      .SetDefaultValue("Select a value").Build();
            var termsAndConditions = new CheckElementBuilder().SetName("TermsAndConditions")
                                     .SetLabel(ElementLabel.Left("Do you accept the terms and conditions?")).SetContent("Yes / No").AddRules(
                ValidationRule <ICheckElementViewModel> .Create(new CheckElement_IsChecked_Validator())
                .WithFailMessage("You must accept the terms and conditions")).Build();

            var submitButton = new ButtonElementBuilder().SetName("Submit Button").SetContent("Submit")
                               .SetVerticalAlignment(VerticalAlignment.Bottom).Build();

            var submitEventListener = new EventListener("submit",
                                                        new ElementNameEventSpecification("submit").And(
                                                            new TypeNameEventSpecification(nameof(ButtonElementClickedEvent))),
                                                        new IdentitySpecification <FormViewModel>());

            var rowGroup1 = new RowBuilder().SetName("Data Entry Rows")
                            .AddChildren(htmlContent, personalDetails, experienceSelection, termsAndConditions).Build();

            var rootGroup = new GroupBuilder().SetName("Test Group 1").SetTitle("Demo Form Title")
                            .AddChildren(rowGroup1, submitButton).Build();

            var newForm = new FormBuilder().SetName("Demo Form").SetTitle("Demo Form Title").SetRoot(rootGroup)
                          .AddEventListeners(submitEventListener)
                          .Build();

            return(new FormViewModel(newForm));
        }
コード例 #20
0
ファイル: RowSteps.cs プロジェクト: orf53975/dataexplorer
        public void GivenARow()
        {
            var row = new RowBuilder().Build();

            _appContext.Row = row;
            _appContext.DataContext.Rows.Add(row);
        }
        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);
        }
コード例 #22
0
        private static RowCollection MakeRowCollectionForFromTrendVariable([NotNull] MultiyearTrend trend, [NotNull] string variable)
        {
            string shortendName = variable;

            if (shortendName.Length > 30)
            {
                shortendName = shortendName.Substring(0, 30);
            }

            RowCollection rc = new RowCollection(shortendName, variable);
            //scenarios
            var scenarios = trend.Dict.Keys.Select(x => x.DstScenario.FriendlyName).Distinct().ToList();

            //values
            var years = trend.Dict.Keys.Select(x => x.DstYear).Distinct().OrderBy(x => x).ToList();

            foreach (var year in years)
            {
                if (year == 2017)
                {
                    var rb  = RowBuilder.Start("Year", 2017);
                    var val = trend.Dict[Constants.PresentSlice].GetSliceValueByName(variable);
                    foreach (var scenario in scenarios)
                    {
                        if (scenario == Scenario.Present().FriendlyName)
                        {
                            continue;
                        }

                        rb.Add(scenario, val);
                    }

                    rc.Add(rb);
                }
                else
                {
                    var rb = RowBuilder.Start("Year", year);
                    foreach (var scenario in scenarios)
                    {
                        if (scenario == Scenario.Present().FriendlyName)
                        {
                            continue;
                        }

                        var    slicevalues = trend.Dict.Values.FirstOrDefault(x => x.Slice.DstYear == year && x.Slice.DstScenario.FriendlyName == scenario);
                        object o           = null;
                        if (slicevalues != null)
                        {
                            o = slicevalues.GetSliceValueByName(variable);
                        }

                        rb.Add(scenario, o);
                    }

                    rc.Add(rb);
                }
            }

            return(rc);
        }
コード例 #23
0
ファイル: CrossJoin.cs プロジェクト: MaartenX/ConnectQl
        /// <summary>
        /// Gets the rows for the join.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <param name="multiPartQuery">
        /// The multi part query.
        /// </param>
        /// <returns>
        /// The <see cref="IAsyncEnumerable{Row}"/>.
        /// </returns>
        internal override IAsyncEnumerable <Row> GetRows(IInternalExecutionContext context, [NotNull] IMultiPartQuery multiPartQuery)
        {
            var rowBuilder = new RowBuilder();

            //// Build the left part by filtering by parts that contain the fields of the left side.
            var leftQuery = new MultiPartQuery
            {
                Fields           = multiPartQuery.Fields.Where(f => this.Left.Aliases.Contains(f.SourceAlias)),
                FilterExpression = multiPartQuery.FilterExpression.FilterByAliases(this.Left.Aliases),
                WildcardAliases  = multiPartQuery.WildcardAliases.Intersect(this.Left.Aliases).ToArray(),
            };

            //// Create the enumerable.
            return(context.CreateAsyncEnumerable(
                       async() =>
            {
                //// Retrieve the records from the left side.
                var leftData = await this.Left.GetRows(context, leftQuery).MaterializeAsync().ConfigureAwait(false);

                var rightQuery = new MultiPartQuery
                {
                    Fields = multiPartQuery.Fields.Where(f => this.Right.Aliases.Contains(f.SourceAlias)),
                    FilterExpression = CrossJoin.RangesToJoinFilter(await this.FindRangesAsync(context, multiPartQuery.FilterExpression, leftData)),
                    WildcardAliases = multiPartQuery.WildcardAliases.Intersect(this.Right.Aliases),
                };

                var rightData = await this.Right.GetRows(context, rightQuery).MaterializeAsync().ConfigureAwait(false);

                return leftData.CrossJoin(rightData, rowBuilder.CombineRows);
            })
                   .Where(multiPartQuery.FilterExpression.GetRowFilter())
                   .OrderBy(multiPartQuery.OrderByExpressions)
                   .AfterLastElement(count => context.Logger.Verbose($"{this.GetType().Name} returned {count} records.")));
        }
        private void MakeAbregelungWorksheet([NotNull] ScenarioSliceParameters slice, double maxDailyGen,
                                             [NotNull] Profile addedProfile)
        {
            RowCollection rc = new RowCollection("effect", "Effekt");

            for (double i = 0; i < 1; i += 0.01)
            {
                double storageSize = maxDailyGen * 2;
                var    minimzed    = ProfileSmoothing.FindBestPowerReductionRatio(addedProfile,
                                                                                  storageSize,
                                                                                  out var _,
                                                                                  out var reductionFactor, i);
                double friendlySize = storageSize / Constants.GWhFactor;
                Info("Size: " + i + " " + friendlySize + " gwh, Reduction factor: " + reductionFactor);
                RowBuilder rb = RowBuilder.Start("Size", friendlySize);
                rb.Add("storage", storageSize);
                rb.Add("ReductionFactor", reductionFactor);
                rb.Add("Capping", i);
                rb.Add("Max Power", minimzed.MaxPower() / 1000);
                rb.Add("Min Power", minimzed.MinPower() / 1000);
                rc.Add(rb);
            }

            var fnFactor = MakeAndRegisterFullFilename("CappingImpact.xlsx", slice);

            XlsxDumper.WriteToXlsx(fnFactor, rc);
            SaveToPublicationDirectory(fnFactor, slice, "4.5");
        }
コード例 #25
0
ファイル: RowBuilderSpec.cs プロジェクト: drunkcod/Cone
        public void collects_computed_parameters()
        {
            var rows = new RowBuilder<RowBuilderSpec>()
                .Add(x => x.DoStuff(Double(21)));

            Check.That(() => rows[0].Parameters[0] == (object)42);
        }
コード例 #26
0
        /// <summary>
        /// 添加行
        /// </summary>
        protected void AddRow(TagBuilder tableBuilder, string columns)
        {
            var rowBuilder = new RowBuilder();

            rowBuilder.AddColumns(columns);
            tableBuilder.AppendContent(rowBuilder);
        }
コード例 #27
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);
        }
コード例 #28
0
 /// <summary>
 /// 配置循环变量
 /// </summary>
 private void ConfigVariable(RowBuilder builder)
 {
     if (_tableId.IsEmpty())
     {
         return;
     }
     builder.NgFor($"let row of {_tableId}.data");
 }
コード例 #29
0
 /// <summary>
 /// 配置循环变量
 /// </summary>
 private void ConfigVariable(RowBuilder builder)
 {
     if (_tableId.IsEmpty())
     {
         return;
     }
     builder.ConfigIterationVar(_tableId);
 }
コード例 #30
0
            public InlineKeyboardMarkupBuilder Row(Action <RowBuilder> action)
            {
                var rowBuilder = new RowBuilder();

                action(rowBuilder);
                _list.Add(rowBuilder.Build());
                return(this);
            }
コード例 #31
0
ファイル: TableRender.cs プロジェクト: zzpgeorge/Util
 /// <summary>
 /// 添加行编辑属性
 /// </summary>
 private void AddEditRow(RowBuilder rowBuilder)
 {
     if (_config.IsEdit == false)
     {
         return;
     }
     rowBuilder.ConfigEdit(_config.EditTableId, _config.RowId);
 }
コード例 #32
0
        public GridBuilder <T, TResult> AddRow(Action <RowBuilder> action)
        {
            var rowBuilder = new RowBuilder();

            action(rowBuilder);
            _list.Add(rowBuilder.Build());
            return(this);
        }
コード例 #33
0
ファイル: RowBuilderSpec.cs プロジェクト: drunkcod/Cone
 public void collect_inline_lambda()
 {
     var rows = new RowBuilder<RowBuilderSpec>()
         .Add(x => x.Lambda(() => 42));
     Check.That(() => rows[0].Parameters[0] is Func<int>);
 }