コード例 #1
0
 public Strategy2020ContentBuilder()
 {
     cache = CacheFactory.GetCacheManager();
     data  = new Strategy2020Data();
     InitializeTypes();
     content = new Strategy2020Content();
 }
コード例 #2
0
 public Strategy2020ContentStrategy()
 {
     data = new Strategy2020Data();
 }
コード例 #3
0
        public List <Strategy2020DTO> TransformRawStrategyList
            (List <Strategy2020ListItemDTO> initialList,
            List <ProcessSubProcessRelation> processSubProcessRelation,
            List <ProcessApplicationRelation> processApplicationRelation,
            List <SubProcessModuleRelation> subProcModuleRelation,
            List <ApplicationModuleRelation> appModulesRelation)
        {
            FillUpType(initialList);

            List <Strategy2020DTO> newList = new List <Strategy2020DTO>();
            Strategy2020Data       data    = new Strategy2020Data();
            Strategy2020Content    lookup  = new Strategy2020Content();

            //NOTE: The entry point is still the initiative topic,
            //but they are not shown in the result data
            List <EntityDTO> entryPoint = data.GetAllInitiativeTopic();

            //DumpInitialList(initialList.OrderBy(c=>c.ProcessID).ToList());
            //DumpProcessToSubprocess(processSubProcessRelation.OrderBy(c=>c.ProcessID).ToList());
            //return null;
            entryPoint.Add(new EntityDTO());
            foreach (EntityDTO e in entryPoint)
            {
                var tempTable = (from il in initialList
                                 where il.InitiativeTopicID == e.ID
                                 select il).Distinct(new AgendaComparer()).ToList();
                foreach (Strategy2020ListItemDTO sub in tempTable)
                {
                    Strategy2020DTO s = new Strategy2020DTO();
                    s.InitiativeTopic   = sub.InitiativeTopicName;
                    s.InitiativeTopicID = sub.InitiativeTopicID;
                    s.AgendaTypeID      = sub.AgendaTypeID;
                    if (sub.AgendaTypeID != 0)
                    {
                        s.Type  = TypeNames.Where(c => c.Key == sub.AgendaTypeID).FirstOrDefault().Value.Name;
                        s.Order = TypeNames.Where(c => c.Key == sub.AgendaTypeID).FirstOrDefault().Value.Order;
                    }
                    else
                    {
                        s.Order = 9999;
                    }

                    s.Agenda   = sub.AgendaName;
                    s.AgendaID = sub.AgendaID;


                    var policies = (from pp in initialList
                                    where pp.AgendaID == s.AgendaID
                                    select pp).Distinct(new PolicyComparer()).ToList();

                    List <BusinessPolicy> b_policies =
                        Strategy2020DTOConverter.ConvertToListOfBusinessPolicy(policies);

                    foreach (BusinessPolicy b_policy in b_policies)
                    {
                        var rules = (from rr in initialList
                                     where rr.PolicyID == b_policy.BusinessPolicyID
                                     select rr).Distinct(new RuleComparer()).ToList();

                        List <BusinessRule> b_rules =
                            Strategy2020DTOConverter.ConvertToListOfBusinessRule(rules);



                        foreach (BusinessRule rule in b_rules)
                        {
                            var processes = (from proc in initialList
                                             where proc.RuleID == rule.BusinessRuleID
                                             select proc).Distinct(new ProcessComparer()).ToList();

                            List <ProcessRelation> p_list =
                                Strategy2020DTOConverter.ConvertToListOfProcessRelation(processes, lookup);

                            foreach (ProcessRelation p_rel in p_list)
                            {
                                var subprocesses = (from subproc in processSubProcessRelation
                                                    where subproc.ProcessID == p_rel.ProcessID
                                                    orderby subproc.SubProcessName
                                                    select subproc).Distinct(new SubProcessComparer()).ToList();

                                List <SubProcessRelation> sp_list =
                                    Strategy2020DTOConverter.ConvertToListOfSubProcessRelation(subprocesses, lookup);

                                foreach (SubProcessRelation sp_rel in sp_list)
                                {
                                    var modules = (from mods in subProcModuleRelation
                                                   where mods.SubProcessID == sp_rel.SubProcessID
                                                   select mods).ToList(); //new ModulesComparer()).ToList();

                                    List <ModuleRelation> mod_list =
                                        Strategy2020DTOConverter.ConvertToListOfModuleRelation(modules);
                                    sp_rel.Modules = mod_list;
                                }

                                p_rel.SubProcesses = sp_list;

                                //here goes the application relationship

                                var apps = (from app in processApplicationRelation
                                            where app.ProcessID == p_rel.ProcessID
                                            select app).ToList();

                                List <ApplicationRelation> apprelation =
                                    Strategy2020DTOConverter.ConvertToListOfApplicationRelation(apps);

                                foreach (ApplicationRelation app_rel in apprelation)
                                {
                                    var app_mods = (from mods in appModulesRelation
                                                    where mods.ApplicationID == app_rel.ApplicationID
                                                    select mods).ToList();


                                    List <ModuleRelation> app_mod_list =
                                        Strategy2020DTOConverter.ConvertToListOfApplicationModuleRelation(app_mods);

                                    app_rel.Modules = app_mod_list;
                                }

                                p_rel.Application = apprelation;
                            }

                            rule.Processes = p_list;
                        }

                        b_policy.Rules = b_rules;
                    }

                    s.Policies = b_policies;

                    newList.Add(s);
                }
            }

            return(newList.OrderBy(c => c.Order).ToList());
        }
コード例 #4
0
 public Strategy2020Content()
 {
     cache = CacheFactory.GetCacheManager();
     data  = new Strategy2020Data();
 }