Esempio n. 1
0
File: UI.cs Progetto: apxlee/SAP
        public static List<BuilderActor> GetRequestActors(int requestId)
        {
            List<BuilderActor> actorList = new List<BuilderActor>();
            using (var db = new SNAPDatabaseDataContext())
            {
                var query = from a in db.SNAP_Actors
                            join sw in db.SNAP_Workflows on a.pkId equals sw.actorId
                            join sws in db.SNAP_Workflow_States on sw.pkId equals sws.workflowId
                            where sw.requestId == requestId
                            group sw by new { a.userId, sw.requestId, sw.actorId } into wfGroup
                            select new
                            {
                                ActorId = wfGroup.Key.actorId,
                                UserId = wfGroup.Key.userId,
                                WorkflowId = wfGroup.Max(sw => sw.pkId)
                            };

                foreach (var actor in query)
                {
                    BuilderActor newActor = new BuilderActor();
                    newActor.ActorId = actor.ActorId;
                    newActor.UserId = actor.UserId;
                    newActor.WorkflowState = (WorkflowState)ApprovalWorkflow.GetWorkflowState(actor.WorkflowId);
                    actorList.Add(newActor);
                }
            }
            return actorList;
        }
Esempio n. 2
0
File: UI.cs Progetto: apxlee/SAP
        public static List<BuilderGroup> GetBuilderGroups()
        {
            List<BuilderGroup> groupList = new List<BuilderGroup>();

            using (var db = new SNAPDatabaseDataContext())
            {
                var query = from sa in db.SNAP_Actors
                            join sag in db.SNAP_Actor_Groups on sa.actor_groupId equals sag.pkId
                            where sa.isActive == true && sag.isActive == true && sag.actorGroupType < 2
                            orderby sag.actorGroupType, sag.groupName ascending
                            select new
                            {
                                ActorId = sa.pkId,
                                UserId = sa.userId,
                                DisplayName = sa.displayName,
                                IsDefault = sa.isDefault,
                                IsLargeGroup = sag.isLargeGroup,
                                GroupId = sag.pkId,
                                GroupName = sag.groupName,
                                Description = sag.description,
                                ActorGroupType = sag.actorGroupType
                            };
                foreach (var actor in query)
                {
                    List<BuilderActor> actorList = new List<BuilderActor>();
                    BuilderActor newActor = new BuilderActor();
                    newActor.ActorId = actor.ActorId;
                    newActor.UserId = actor.UserId;
                    newActor.DisplayName = actor.DisplayName;
                    newActor.IsDefault = actor.IsDefault;
                    newActor.ActorGroupType = (ActorGroupType)actor.ActorGroupType;

                    BuilderGroup accessGroup = groupList.Find(delegate(BuilderGroup _grp)
                    {
                        if (_grp.GroupId == actor.GroupId)
                        {
                            // group exists
                            return true;
                        }
                        // group doesn't exist
                        return false;
                    });

                    if (accessGroup != null)
                    {
                        actorList = accessGroup.AvailableActors;
                        actorList.Add(newActor);
                        accessGroup.AvailableActors = actorList;
                    }
                    else
                    {

                        BuilderGroup newGroup = new BuilderGroup();
                        actorList.Add(newActor);
                        newGroup.GroupId = actor.GroupId;
                        newGroup.GroupName = actor.GroupName;
                        newGroup.Description = actor.Description;
                        newGroup.ActorGroupType = (ActorGroupType)actor.ActorGroupType;
                        newGroup.IsLargeGroup = (bool)actor.IsLargeGroup;
                        newGroup.AvailableActors = actorList;
                        newGroup.ActorGroupType = (ActorGroupType)actor.ActorGroupType;
                        groupList.Add(newGroup);
                    }
                }
            }

            return groupList;
        }