/// <summary> /// Transforms from kh list to mental model /// </summary> /// <returns></returns> private List <MentalModel> TransformDOToMentalModel() { mentalProto = DecisionOptions.GroupBy(kh => kh.MentalModel).OrderBy(g => g.Key).Select(g => new MentalModel(g.Key, Goals.Where(goal => MentalModel[g.Key.ToString()].AssociatedWith.Contains(goal.Name)).ToArray(), g.GroupBy(kh => kh.DecisionOptionsLayer).OrderBy(g2 => g2.Key). Select(g2 => new DecisionOptionLayer(MentalModel[g.Key.ToString()].Layer[g2.Key.ToString()], g2)))).ToList(); return(mentalProto); }
/// <summary> /// Adds decision option to mental model of current prototype if it isn't exists in the scope. /// </summary> /// <param name="newDecisionOption"></param> /// <param name="layer"></param> public void AddNewDecisionOption(DecisionOption newDecisionOption, DecisionOptionLayer layer) { if (mentalProto == null) { TransformDOToMentalModel(); } layer.Add(newDecisionOption); DecisionOptions.Add(newDecisionOption); }
/// <summary> /// Checks for similar decision options /// </summary> /// <param name="decisionOption"></param> /// <returns></returns> public bool IsSimilarDecisionOptionExists(DecisionOption decisionOption) { return(DecisionOptions.Any(kh => kh == decisionOption)); }