public void PutParameter(string[] path, AnalyticRuleType type) { if (path.Length == 0) { children.Add(new RuleEvaluationChronologyViewModel( EvaluationCache.Get(vin).GetRuleEvaluationChronology(type))); } else { if (!children.Any(f => f is EvaluationFolderViewModel && ((EvaluationFolderViewModel)f).Key == path[0])) { EvaluationFolderViewModel newFolder = new EvaluationFolderViewModel(path[0], vin); newFolder.PutParameter(GetSubPath(path), type); children.Add(newFolder); } else { EvaluationFolderViewModel folder = children.First(f => f is EvaluationFolderViewModel && ((EvaluationFolderViewModel)f).Key == path[0]) as EvaluationFolderViewModel; folder.PutParameter(GetSubPath(path), type); } } OnPropertyChanged("Children"); RefreshSummaryMark(); }
protected virtual void RefreshSummaryMark() { List <double> marks = new List <double>(); foreach (ViewModelBase child in Children) { EvaluationFolderViewModel folder = child as EvaluationFolderViewModel; if (null != folder) { marks.Add(folder.summaryMark); } RuleEvaluationChronologyViewModel rule = child as RuleEvaluationChronologyViewModel; if (rule != null) { marks.Add(rule.CurrentMark); } } summaryMark = marks.Sum() / marks.Count; OnPropertyChanged("SummaryMark"); }