Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public Rule6(SimplifiedNetwork simplifiedNetwork)
 {
     this.network = simplifiedNetwork;
 }
Ejemplo n.º 4
0
 public Rule7(SimplifiedNetwork simplifiedNetwork)
 {
     this.simplifiedNetwork = simplifiedNetwork;
 }
Ejemplo n.º 5
0
 public Rule1(SimplifiedNetwork simplifiedNetwork)
 {
     this.nodes = simplifiedNetwork.Nodes;
 }