public List <IDiagramAnalysisNodeMessage> PerformAnalysis(XmlDocument xDoc) { String sal = db.STANDARD_SELECTION.Where(x => x.Assessment_Id == assessment_id).First().Selected_Sal_Level; SimplifiedNetwork network = new SimplifiedNetwork(this.imageToTypePath, sal); network.ExtractNetworkFromXml(xDoc); List <IDiagramAnalysisNodeMessage> msgs = AnalyzeNetwork(network); return(msgs); }
private List <IDiagramAnalysisNodeMessage> AnalyzeNetwork(SimplifiedNetwork network) { List <IRuleEvaluate> rules = new List <IRuleEvaluate>(); rules.Add(new Rule1(network)); rules.Add(new Rule2(network)); rules.Add(new Rule3and4(network)); rules.Add(new Rule5(network)); rules.Add(new Rule6(network)); rules.Add(new Rule7(network)); //NetworkWalk walk = new NetworkWalk(); //walk.printGraphSimple(network.Nodes.Values.ToList()); List <IDiagramAnalysisNodeMessage> msgs = new List <IDiagramAnalysisNodeMessage>(); foreach (IRuleEvaluate rule in rules) { msgs.AddRange(rule.Evaluate()); } // number and persist warning messages using (CSET_Context context = new CSET_Context()) { var oldWarnings = context.NETWORK_WARNINGS.Where(x => x.Assessment_Id == assessment_id).ToList(); context.NETWORK_WARNINGS.RemoveRange(oldWarnings); context.SaveChanges(); int n = 0; msgs.ForEach(m => { StringBuilder sb = new StringBuilder(); m.SetMessages.ToList().ForEach(m2 => { sb.AppendLine(m2); }); m.Number = ++n; context.NETWORK_WARNINGS.Add(new NETWORK_WARNINGS { Assessment_Id = assessment_id, Id = m.Number, WarningText = sb.ToString() }); }); context.SaveChanges(); } return(msgs); }
public Rule6(SimplifiedNetwork simplifiedNetwork) { this.network = simplifiedNetwork; }
public Rule7(SimplifiedNetwork simplifiedNetwork) { this.simplifiedNetwork = simplifiedNetwork; }
public Rule1(SimplifiedNetwork simplifiedNetwork) { this.nodes = simplifiedNetwork.Nodes; }