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); }
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))); }
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 }); }