Bevisuali.UX.MainWindow.RequestResetEvidence C# (CSharp) Method

RequestResetEvidence() private method

private RequestResetEvidence ( int scenarioId ) : void
scenarioId int
return void
        internal void RequestResetEvidence(int? scenarioId)
        {
            if (scenarioId == null)
            {
                foreach (IScenario scenario in Model.Scenarios)
                {
                    scenario.InferenceUpdated -= OnScenarioInferenceUpdated;
                    scenario.InferenceFinished -= OnScenarioInferenceFinished;
                    xGraphInspector.SetInferenceResults(null, int.Parse(scenario.Id), new FObservation());
                }
                Model.Scenarios.Clear();
            }
            else
            {
                string scenarioIdAsString = scenarioId.Value.ToString();
                var scenario = Model.Scenarios.Where(s => s.Id == scenarioIdAsString).FirstOrDefault();
                if (scenario != null)
                {
                    Model.Scenarios.Remove(scenario);
                }
            }

            // Restore basic scenario 1.
            if (scenarioId == null || scenarioId.Value == 1)
            {
                Scenario scenario = new Scenario("1", new FObservation(), Model.BayesianNetwork);
                scenario.InferenceUpdated += OnScenarioInferenceUpdated;
                scenario.InferenceFinished += OnScenarioInferenceFinished;
                Model.Scenarios.Add(scenario);
            }

            // Update UI immediately.
            {
                var evidencesForEvidenceInspector =
                    Model.Scenarios.ToDictionary(
                        e => string.Format("Scenario {0}", e.Id),
                        e => new Tuple<FObservation, FRandomVariable[]>(e.Evidence, e.Workbench.BayesianNetwork.VariablesOrdered.ToArray())
                    );
                xEvidenceInspector.SetEvidence(evidencesForEvidenceInspector, Model.BayesianNetworkVariableAbbreviations);
                xGraphInspector.SetInterestVariables(null);
            }

            // Reset to simple node selection state.
            Model.SelectedVariableMode = Mode.Inspecting;
        }