Example #1
0
        private static List<Node> GetActivityNodes(String connectionString, IEnumerable<Process> processess, DBVersion version, bool getInstances)
        {
                var db = new Data1.CloudCoreDB(connectionString);

                var nodes = from a in db.Cloudcoremodel_ActivityModel
                            join t in db.Cloudcoremodel_SubProcess on a.SubProcessId equals t.SubProcessId
                            join pr in db.Cloudcoremodel_ProcessRevision on t.ProcessRevisionId equals pr.ProcessRevisionId
                            join at in db.Cloudcoremodel_ActivityType on a.ActivityTypeId equals at.ActivityTypeId
                            where processess.Select(r => new { r.Id, Revision = r.RevisionId }).Contains(new { Id = pr.ProcessModelId, Revision = pr.ProcessRevisionId }) || pr.ProcessModelId == 0
                            select new Node
                            {
                                ID = a.ActivityModelId,
                                Title = a.ActivityName,
                                GroupID = t.SubProcessId,
                                GroupTitle = t.SubProcessName,
                                Startable = a.Startable,
                                ActivityType = at.ActivityTypeName,
                                Instances = -1
                                //Instances = getInstances ?
                                //                  (from wl in db.BTWorklist
                                //                   where a.ActivityModelId == wl.ActivityID
                                //                   select a.ActivityModelId).Count()
                                //     : -1
                                
                            };
                return nodes.ToList();
           
        }      
Example #2
0
 public static List<Revision> GetRevisions(DrawItem drawItem)
 {
     var db = new Data1.CloudCoreDB(drawItem.ConnectionString);
     var revisions = from pv in db.Cloudcoremodel_ProcessRevision
                     select new Revision
                                {
                                    ID = pv.ProcessRevisionId,
                                    Name = pv.ProcessRevision.ToString(),
                                    ProcessID = pv.ProcessModelId,
                                    Date = String.Format("{0:dd MMMM yyyy}", pv.Changed),
                                    User = pv.UserId.ToString()
                                };
     return revisions.ToList();
 }        
Example #3
0
        public static List<Process> GetProcesses(DrawItem drawItem)
        {
            var db = new Data1.CloudCoreDB(drawItem.ConnectionString);

            var processes = from pm in db.Cloudcoremodel_ProcessModel
                            where pm.ProcessModelId != 0
                            select new Process(drawItem)
                            {
                                Id = pm.ProcessModelId,
                                Title = pm.ProcessName
                            };

            return processes.ToList();
        }        
        public void CreateAvailableRevisions()
        {

            var processRevisions = new List<ProcessRevisions>();

            var db = new Data1.CloudCoreDB(DrawItem.ConnectionString);

                foreach (var process in DrawItem.Process)
                {
                    var revisions = (from pr in db.Cloudcoremodel_ProcessRevision
                                     join u in db.Cloudcore_User on pr.UserId equals u.UserId
                                     orderby pr.ProcessRevision descending
                                     where pr.ProcessModelId == process.Id
                                     select new Revision
                                                {
                                                    Name = "Revision " + pr.ProcessRevision.ToString(),
                                                    ID = pr.ProcessRevisionId,
                                                    User = u.NFullname,
                                                    Date = String.Format("{1}: {0:dd MMMM yyyy}", pr.Changed, "Created"),
                                                    ProcessID = pr.ProcessModelId
                                                }).ToList();


                    var latest = (from r in revisions
                                  select new Revision
                                             {
                                                 Name = "Latest",
                                                 ID = r.ID,
                                                 User = r.User,
                                                 Date = r.Date,
                                                 ProcessID = r.ProcessID

                                             }).First();
                    revisions.Insert(1, latest);

                    //Delete duplicate entry
                    revisions.Remove(revisions.First());


                    processRevisions.Add(new ProcessRevisions(DrawItem)
                                             {
                                                 ProcessName = process.Title,
                                                 ProcessID = process.Id,
                                                 Revisions = revisions
                                             });
            }

            _availableRevisions = processRevisions;
        }
Example #5
0
        private static List<Connector> GetActivityConnectors(string connectionString, IEnumerable<Process> processes, DBVersion version)
        {
            var db = new Data1.CloudCoreDB(connectionString);

                var connectors = (from f in db.Cloudcoremodel_FlowModel
                                  join fa in db.Cloudcore_Activity on f.FromActivityModelId equals fa.ActivityModelId
                                  join t in db.Cloudcoremodel_SubProcess on fa.SubProcessGuid equals t.SubProcessGuid
                                  where processes.Select(r => r.Id).Contains(t.ProcessRevisionId)
                                  select new Connector
                                             {
                                                 Title = f.Outcome,
                                                 FromID = f.FromActivityModelId,
                                                 ToID = f.ToActivityModelId,
                                                 FlowInd = 0
                                  }).Distinct();
                return connectors.ToList();

        }
Example #6
0
        private void GenerateConnectors(string connectionString)
        {
            var db = new Data1.CloudCoreDB(connectionString);

            var connectors = (from f in db.Cloudcoremodel_FlowModel
                              join fa in db.Cloudcoremodel_ActivityModel on f.FromActivityModelId equals fa.ActivityModelId
                              join t in db.Cloudcoremodel_SubProcess on fa.SubProcessId equals t.SubProcessId
                              join p in db.Cloudcoremodel_ProcessRevision on t.ProcessRevisionId equals p.ProcessRevisionId
                              where RevisionId == p.ProcessRevisionId
                              select new
                              {
                                  Title = f.Outcome == "-" ? String.Empty : f.Outcome,
                                  FromId = f.FromActivityModelId,
                                  ToId = f.ToActivityModelId,
                                  OptimalFlow = f.OptimalFlow,
                                  NegativeFlow = f.NegativeFlow,
                                  HasTrigger = (bool)db.Cloudcore_FlowHasTrigger(f.FlowGuid)
                              }).Distinct();

            foreach (var connector in connectors)
            {
                var con = new Connector()
                {
                    Title = connector.Title,
                    FromActivityId = connector.FromId,
                    ToActivityId = connector.ToId
                };
                if (connector.OptimalFlow)
                {
                    con.AddProperty(ConnectorProperties.Optimal);
                }
                if (connector.NegativeFlow)
                {
                    con.AddProperty(ConnectorProperties.Negative);
                }
                if (connector.HasTrigger)
                {
                    con.AddProperty(ConnectorProperties.Trigger);
                }

                Connectors.Add(con);
            }
        }
Example #7
0
        private static List<Connector> GetSubProcessConnectors(string connectionString, IEnumerable<Process> processes, DBVersion version)
        {
                var db = new Data1.CloudCoreDB(connectionString);

                var connectors = (from f in db.Cloudcoremodel_FlowModel
                                  join fa in db.Cloudcore_Activity on f.FromActivityModelId equals fa.ActivityModelId
                                  join ta in db.Cloudcore_Activity on f.ToActivityModelId equals ta.ActivityModelId
                                  join fsub in db.Cloudcoremodel_SubProcess on fa.SubProcessGuid equals fsub.SubProcessGuid
                                  join tsub in db.Cloudcoremodel_SubProcess on ta.SubProcessGuid equals tsub.SubProcessGuid
                                  where fa.SubProcessGuid != ta.SubProcessGuid &&
                                        processes.Select(r => r.Id).Contains(fsub.SubProcessId)
                                  select new Connector
                                  {
                                      FromID = fsub.SubProcessId,
                                      ToID = tsub.SubProcessId,
                                      Title = "",
                                      FlowInd = 0
                                  }).Distinct();

                return connectors.ToList();
        }
Example #8
0
        private static List<Node> GetTaskNodes(String connectionString, IEnumerable<Process> processess, DBVersion version, bool getInstances)
        {
         
                var db = new Data1.CloudCoreDB(connectionString);

                var nodes = from t in db.Cloudcoremodel_ActivityModel
                            join tsub in db.Cloudcoremodel_SubProcess on t.SubProcessId equals tsub.SubProcessId
                            join pr in db.Cloudcoremodel_ProcessRevision on t.ProcessRevisionId equals pr.ProcessRevisionId
                            join p in db.Cloudcoremodel_ProcessModel on pr.ProcessModelId equals p.ProcessModelId
                            where processess.Select(r => new { r.Id, Revision = r.RevisionId }).Contains(new { Id = p.ProcessModelId, Revision = pr.ProcessRevisionId }) || pr.ProcessModelId == 0
                            orderby t.SubProcessId
                            select new Node
                            {
                                ID = t.SubProcessId,
                                Title = tsub.SubProcessName,
                                GroupTitle = p.ProcessName,
                                GroupID = pr.ProcessModelId,
                                Startable = (from fm in db.Cloudcoremodel_FlowModel
                                             join fa in db.Cloudcoremodel_ActivityModel on fm.FromActivityModelId equals fa.ActivityModelId
                                             where fa.Startable
                                             select fa.SubProcessId).Contains(t.SubProcessId),
                                Decision = (from f in db.Cloudcoremodel_FlowModel
                                            join fa in db.Cloudcoremodel_ActivityModel on f.FromActivityModelId equals fa.ActivityModelId
                                            join ta in db.Cloudcoremodel_ActivityModel on f.ToActivityModelId equals ta.ActivityModelId
                                            where fa.SubProcessId != ta.SubProcessId && fa.SubProcessId == t.SubProcessId
                                            select ta.ActivityModelId).Distinct().Count() > 1,
                                Instances = -1
                                //Instances = getInstances ?
                                //                             (from wl in db.BTWorklist
                                //                              join a in db.BTActivity on wl.ActivityID equals a.ActivityID
                                //                              where a.TaskID == t.TaskModelId
                                //                              select a.ActivityID).Count()
                                //                : -1
                            };

                return nodes.ToList();
         
        }
Example #9
0
        private void GenerateActivities(string connectionString)
        {
            var db = new Data1.CloudCoreDB(connectionString);

            var activities = from am in db.Cloudcoremodel_ActivityModel
                             join sub in db.Cloudcoremodel_SubProcess on am.SubProcessId  equals sub.SubProcessId
                             join pr in db.Cloudcoremodel_ProcessRevision on am.ProcessRevisionId equals pr.ProcessRevisionId
                             where pr.ProcessRevisionId == Id || pr.ProcessModelId == 0
                             select new
                             {
                                 Id = am.ActivityModelId,
                                 Title = am.ActivityName,
                                 SubProcessId = sub.SubProcessId,
                                 SubProcessName = sub.SubProcessName,
                                 Startable = am.Startable,
                                 ActivityTypeId = am.ActivityTypeId,
                                 Decision = (from f in db.Cloudcoremodel_FlowModel
                                             where f.FromActivityModelId == am.ActivityModelId
                                             select am.ActivityModelId).Count() > 1
                             };

            foreach (var activity in activities)
            {
                var subProcess = SubProcesses.Where(r => r.Id == activity.SubProcessId).SingleOrDefault();
                if (subProcess == null)
                {
                    subProcess = new SubProcess()
                    {
                        Id = activity.SubProcessId,
                        Parent = this,
                        Title = activity.SubProcessName

                    };
                    SubProcesses.Add(subProcess);
                }

                IActivity act;

                switch (activity.ActivityTypeId)
                {
                    case 0:
                        act = new CloudCore_User_Activity();
                        break;
                    case 1:
                        act = new Custom_User_Activity();
                        break;
                    case 2:
                        act = new Database_Custom_Activity();
                        break;
                    case 3:
                        act = new Database_Parked_Activity();
                        break;
                    case 4:
                        act = new Flow_Rule();
                        break;
                    case 5:
                        act = new Cloud_Custom_Activity();
                        break;
                    case 6:
                        act = new Database_Costing();
                        break;
                    case 7:
                        act = new Cloud_Costing();
                        break;
                    case 8:
                        act = new Database_Batch_Start();
                        break;
                    case 9:
                        act = new Cloud_Batch_Start();
                        break;
                    case 10:
                        act = new Cloud_Batch_Wait();
                        break;
                    case 11:
                        act = new Cloud_Parked_Activity();
                        break;
                    case 12:
                        act = new SMS_Activity();
                        break;
                    case 13:
                        act = new Email_Activity();
                        break;
                    case 14:
                        act = new Corticon_Business_Rule();
                        break;
                    case 99:
                        act = new StopActivity();
                        break;
                    default:
                        act = new CloudCore_User_Activity();
                        break;
                }

                act.Title = activity.Title;
                act.Id = activity.Id;
                act.Parent = subProcess;

                if (activity.Startable)
                    act.AddProperty(ActivityProperties.Startable);


                subProcess.Activities.Add(act);
            }
        }