public static List<ListItem> GetRolePortal(string userName) { List<ListItem> roleList = new List<ListItem>(); roleList.Add(new ListItem("Employee", Constants.PRW_ROLE_EMPLOYEE_ID.ToString())); UserAdmin objAdmin = new UserAdminDao().GetByUserName(userName); if (objAdmin != null) { List<WFRole> list = new CommonDao().GetRoleList(objAdmin.UserAdminId, Constants.WORK_FLOW_PERFORMANCE_REVIEW); list = list.Where(q => q.ID == Constants.PRW_ROLE_EM_ID || q.ID == Constants.PRW_ROLE_PL || q.ID == Constants.PRW_ROLE_MANAGER_ID).ToList(); if (list.Count > 0) { foreach (WFRole item in list) { roleList.Add(new ListItem(item.Name, item.ID.ToString())); } } } return roleList; }
/// <summary> /// Check moving request /// </summary> /// <param name="userID">int</param> /// <param name="request">FlowType</param> /// <param name="id">int</param> /// <param name="action">ActionType</param> /// <param name="role">int</param> /// <returns>bool</returns> public static bool CheckMovingRequest(int userID, Constants.FlowType request, string id, Constants.ActionType action, int role, bool isPortal = false) { bool allow = false; try { string srole = role.ToString(); switch (request) { case Constants.FlowType.FLOW_JOB_REQUEST: JobRequestDao jobDao = new JobRequestDao(); JobRequest job = jobDao.GetById(int.Parse(id)); switch (action) { case Constants.ActionType.List: if (job.InvolveRole.Contains(srole)) allow = true; break; case Constants.ActionType.Update: if (job.AssignRole.Equals(role) && job.AssignID.Equals(userID)) allow = true; break; } break; case Constants.FlowType.FLOW_JOB_REQUEST_ITEM: JobRequestItemDao jobItemDao = new JobRequestItemDao(); JobRequestItem jobItem = jobItemDao.GetByID(id); switch (action) { case Constants.ActionType.Update: if (jobItem.JobRequest.AssignRole.Equals(role) && jobItem.JobRequest.AssignID.Equals(userID)) allow = true; break; } break; case Constants.FlowType.FLOW_PURCHASE_REQUEST: PurchaseRequestDao purDao = new PurchaseRequestDao(); PurchaseRequest pur = purDao.GetByID(int.Parse(id)); switch (action) { case Constants.ActionType.List: if (pur.InvolveRole.Contains(srole)) allow = true; break; case Constants.ActionType.Update: string loginName = new UserAdminDao().GetById(userID).UserName; if (pur.WFStatusID == Constants.STATUS_OPEN) { if (purDao.HasEditPermision(pur.ID, loginName, role)) allow = true; else if (role != Constants.PR_REQUESTOR_ID && purDao.IsAssigned(pur, userID, role)) allow = true; } break; } break; case Constants.FlowType.FLOW_PURCHASE_REQUEST_US: PurchaseRequestDao purUSDao = new PurchaseRequestDao(); PurchaseRequest purUS = purUSDao.GetByID(int.Parse(id)); switch (action) { case Constants.ActionType.List: if (purUS.InvolveRole.Contains(srole)) allow = true; break; case Constants.ActionType.Update: string loginName = new UserAdminDao().GetById(userID).UserName; if (purUS.WFStatusID == Constants.STATUS_OPEN) { if (purUSDao.HasEditPermisionUS(purUS.ID, loginName, role)) allow = true; else if (role != Constants.PR_REQUESTOR_ID_US && purUSDao.IsAssigned(purUS, userID, role)) allow = true; } break; } break; case Constants.FlowType.FLOW_PERFORMANCE_REVIEW: PerformanceReviewDao perDao = new PerformanceReviewDao(); PerformanceReview per = perDao.GetById(id); CommonDao comm = new CommonDao(); int userAdminId = GetUserAdminIdFromEmpId(userID); List<int> roles = comm.GetRoleListInt(userAdminId, Constants.WORK_FLOW_PERFORMANCE_REVIEW); switch (action) { case Constants.ActionType.List: if (isPortal) { if (roles.Contains(role)) allow = true; } else if (per.InvolveRole.Contains(srole)) allow = true; break; case Constants.ActionType.Update: if (isPortal) { if (roles.Contains(role) && per.AssignID.Equals(userID.ToString()) && per.AssignRole.Equals(role)) allow = true; } else if (roles.Contains(per.AssignRole) && per.AssignID.Equals(userID.ToString())) allow = true; break; } break; } } catch { } return allow; }