Exemple #1
0
        public List <string> Handle(ActivityAuth auth)
        {
            ISqlMapper    mapper  = Common.GetMapperFromSession();
            RoleDao       roledao = new RoleDao(mapper);
            User_RoleDao  urdao   = new User_RoleDao(mapper);
            List <string> result  = new List <string>();
            var           role    = roledao.Query(new RoleQueryForm {
                ID = auth.Value, IsDeleted = 0
            }).FirstOrDefault();

            if (role != null)
            {
                var userrole = urdao.Query(new User_RoleQueryForm {
                    RoleID = role.ID
                });
                if (userrole != null)
                {
                    foreach (var ur in userrole)
                    {
                        if (!result.Contains(ur.UserID))
                        {
                            result.Add(ur.UserID);
                        }
                    }
                }
            }
            return(result);
        }
Exemple #2
0
        public List <string> Handle(ActivityAuth auth)
        {
            //var user = userbll.GetCurrentUser();
            //string userid = user.User.ID;
            string userid = "13";
            UserleaderWorkflowAuthority authority = new UserleaderWorkflowAuthority();

            return(authority.GetUserIDs(userid, Convert.ToInt32(auth.Value)));
        }
        public List <string> Handle(ActivityAuth auth)
        {
            ISqlMapper  mapper = Common.GetMapperFromSession();
            WorkflowDao dao    = new WorkflowDao(mapper);
            Workflow    wf     = dao.Query(new WorkflowQueryForm {
                ID = auth.WorkflowID
            }).FirstOrDefault();
            string userid = wf.Creator;
            UserleaderWorkflowAuthority authority = new UserleaderWorkflowAuthority();

            return(authority.GetUserIDs(userid, Convert.ToInt32(auth.Value)));
        }
Exemple #4
0
        private void button19_Click(object sender, EventArgs e)
        {
            WorkflowAuthority wf = new WorkflowAuthority();

            var au = new ActivityAuth
            {
                Type  = "role",
                Value = "7,14",
            };
            var list = wf.GetUserIDList(new List <ActivityAuth>
            {
                au
            });

            LeaderInRoleWorkflowAuthorityHandler handler = new LeaderInRoleWorkflowAuthorityHandler();

            list = handler.Handle(au);
        }
        public List <string> Handle(ActivityAuth auth)
        {
            List <string> result = new List <string>();
            ISqlMapper    mapper = Common.GetMapperFromSession();
            UserBLL       bll    = new UserBLL();
            string        userid = bll.GetCurrentUser().User.ID;
            //string userid = "16";
            RoleDao      roledao = new RoleDao(mapper);
            User_RoleDao urdao   = new User_RoleDao(mapper);

            string[] roleids  = auth.Value.Split(',');
            var      subroles = roledao.Query(new RoleQueryForm {
                ParentIDs = roleids.ToList()
            });
            var urs = urdao.Query(new User_RoleQueryForm {
                UserID = userid
            });
            var roles = subroles.FindAll(t => urs.Exists(p => p.RoleID == t.ID));

            if (roles == null || roles.Count == 0)
            {
                result.Add(userid);
            }
            else
            {
                IWorkflowAuthorityHandler handler = new RoleWorkflowAuthorityHandler();
                foreach (var role in roles)
                {
                    if (roleids.Any(t => t == role.ParentID))
                    {
                        result.AddRange(handler.Handle(new ActivityAuth
                        {
                            Value = role.ParentID,
                        }));
                    }
                }
            }
            return(result);
        }
        public WorkflowModel StartNew(string creator, string processid, IWorkflowAuthority iauth)
        {
            var             mapper      = MapperHelper.GetMapper();
            WorkflowDao     workflowdao = new WorkflowDao(mapper);
            ActivityDao     activitydao = new ActivityDao(mapper);
            LinkDao         linkdao     = new LinkDao(mapper);
            ActivityAuthDao aadd        = new ActivityAuthDao(mapper);
            TaskDao         taskdao     = new TaskDao(mapper);
            WorkflowModel   model       = null;
            Workflow        wf          = this.value.ConvertTo <Workflow>();

            wf.ID      = null;
            wf.Creator = creator;
            wf.Status  = (int)WorkflowProcessStatus.Started;
            wf.WorkflowDefinitionID = this.value.ID;
            wf.ProcessID            = processid;
            workflowdao.Add(wf);

            var             activites        = this.ActivityDefinitionList;
            var             links            = this.LinkDefinitionList;
            List <Activity> activityEntities = new List <Activity>();

            foreach (var a in activites)
            {
                Activity activity = a.Value.ConvertTo <Activity>();
                activity.Creator              = creator;
                activity.ID                   = null;
                activity.WorkflowID           = wf.ID;
                activity.ActivityDefinitionID = a.Value.ID;
                activity.Title                = a.Value.Title;
                activity.Status               = (int)ActivityProcessStatus.Started;

                List <ActivityAuth> authList = new List <ActivityAuth>();

                //如果是开始节点,就设置为已处理
                if (this.Root.Equals(a))
                {
                    activity.Status      = (int)ActivityProcessStatus.Processed;
                    activity.ProcessTime = DateTime.Now;
                }
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    activity.Status = (int)ActivityProcessStatus.Processing;
                }
                activitydao.Add(activity);
                activityEntities.Add(activity);

                //权限处理
                foreach (var ad in a.AuthDefinition)
                {
                    ActivityAuth auth = ad.ConvertTo <ActivityAuth>();
                    auth.Creator    = creator;
                    auth.WorkflowID = wf.ID;
                    auth.ActivityID = activity.ID;
                    auth.ID         = null;
                    auth.ActivityAuthDefinitionID = ad.ID;
                    aadd.Add(auth);
                    authList.Add(auth);
                }

                //如果是第二节点,就设置成正在处理
                if (this.Root.Children.Count > 0 && this.Root.Children[0].Equals(a))
                {
                    ActivityModel activitymodel = new ActivityModel
                    {
                        Value = activity,
                    };
                    var idlist   = iauth.GetUserIDList(authList);
                    var tasklist = activitymodel.GetTask(creator, idlist);
                    foreach (var task in tasklist)
                    {
                        taskdao.Add(task);
                    }
                }
            }

            foreach (var l in links)
            {
                Link link = l.Value.ConvertTo <Link>();
                link.Creator          = creator;
                link.WorkflowID       = wf.ID;
                link.ID               = null;
                link.LinkDefinitionID = l.Value.ID;
                var fromactivity = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.FromActivityDefinitionID);
                var totactivity  = activityEntities.Find(t => t.ActivityDefinitionID == l.Value.ToActivityDefinitionID);
                if (fromactivity != null)
                {
                    link.FromActivityID = fromactivity.ID;
                }
                if (totactivity != null)
                {
                    link.ToAcivityID = totactivity.ID;
                }
                linkdao.Add(link);
            }

            model = WorkflowModel.Load(wf.ID);
            return(model);
        }
 public List <string> Handle(ActivityAuth auth)
 {
     return(new List <string> {
         auth.Value
     });
 }