public SuggestedMetric_Metadata ChooseExperimentOption(ActivityRequest activityRequest) { SuggestedMetric_Metadata result = this.activityRecommender.ChooseExperimentOption(activityRequest, this.Suggestions); if (result.Error != "") { this.UpdateStatus(result.Error); } return(result); }
private void RequestSuggestion_Impl(ActivityRequest activityRequest) { SuggestedMetric_Metadata result = this.owner.ChooseExperimentOption(activityRequest); if (result.Content != null) { this.Suggestion = result.Content; this.owner.UpdateStatus(); } }
public ExperimentInitializationLayout(LayoutStack layoutStack, ActivityRecommender activityRecommender, ActivityDatabase activityDatabase, ProtoActivity_Database protoActivity_database, Engine engine, int numActivitiesThatMayBeRequestedDirectly) { this.SetTitle("Efficiency Experiment"); this.activityRecommender = activityRecommender; Button okbutton = new Button(); this.okButtonLayout = new ButtonLayout(okbutton, "Next"); okbutton.Clicked += Okbutton_Clicked; LayoutChoice_Set helpButton = this.make_helpButton(layoutStack); SuggestedMetric_Metadata experimentsStatus = activityRecommender.Test_ChooseExperimentOption(); if (experimentsStatus.Error != "") { this.SetContent(new TextblockLayout(experimentsStatus.Error)); return; } this.statusHolder = new ContainerLayout(); GridLayout topGrid = new Horizontal_GridLayout_Builder() .AddLayout(helpButton) .AddLayout(new HelpButtonLayout("Browse Activities", new ActivitySearchView(activityDatabase, protoActivity_database, layoutStack), layoutStack)) .Uniform() .Build(); GridLayout_Builder childrenBuilder = new Horizontal_GridLayout_Builder().Uniform(); for (int i = 0; i < this.numChoices; i++) { bool allowRequestingActivityDirectly = (i < numActivitiesThatMayBeRequestedDirectly); ExperimentOptionLayout child = new ExperimentOptionLayout(this, activityDatabase, allowRequestingActivityDirectly, engine, layoutStack); this.children.Add(child); childrenBuilder.AddLayout(child); child.SuggestionDismissed += Child_SuggestionDismissed; child.JustifySuggestion += Child_JustifySuggestion; } GridLayout bottomGrid = childrenBuilder.Build(); BoundProperty_List rowHeights = new BoundProperty_List(3); rowHeights.BindIndices(0, 1); rowHeights.BindIndices(0, 2); rowHeights.SetPropertyScale(0, 2); rowHeights.SetPropertyScale(1, 1); rowHeights.SetPropertyScale(2, 6); GridLayout mainGrid = GridLayout.New(rowHeights, new BoundProperty_List(1), LayoutScore.Zero); mainGrid.AddLayout(topGrid); mainGrid.AddLayout(this.statusHolder); mainGrid.AddLayout(bottomGrid); string statusMessage = "(" + experimentsStatus.NumExperimentParticipationsRemaining + " experiment"; if (experimentsStatus.NumExperimentParticipationsRemaining != 1) { statusMessage += "s"; } statusMessage += " remaining before another ToDo must be entered!)"; this.UpdateStatus(statusMessage); this.SetContent(mainGrid); }