public ActionResult AddSpartan_WorkFlow_Phases(int rowIndex = 0, int functionMode = 0, int id = 0) { int ModuleId = (Session["CurrentModuleId"] != null) ? Convert.ToInt32(Session["CurrentModuleId"]) : 0; ViewBag.currentRowIndex = rowIndex; ViewBag.functionMode = functionMode; ViewBag.Consult = false; var permission = PermissionHelper.GetRoleObjectPermission(SessionHelper.Role, 122); ViewBag.Permission = permission; if (!_tokenManager.GenerateToken()) { return(null); } _ISpartan_WorkFlow_PhasesApiConsumer.SetAuthHeader(_tokenManager.Token); Spartan_WorkFlow_PhasesModel varSpartan_WorkFlow_Phases = new Spartan_WorkFlow_PhasesModel(); if (id.ToString() != "0") { var Spartan_WorkFlow_PhasessData = _ISpartan_WorkFlow_PhasesApiConsumer.ListaSelAll(0, 1000, "PhasesId=" + id, "").Resource.Spartan_WorkFlow_Phasess; if (Spartan_WorkFlow_PhasessData != null && Spartan_WorkFlow_PhasessData.Count > 0) { var Spartan_WorkFlow_PhasesData = Spartan_WorkFlow_PhasessData.First(); varSpartan_WorkFlow_Phases = new Spartan_WorkFlow_PhasesModel { PhasesId = Spartan_WorkFlow_PhasesData.PhasesId , Phase_Number = Spartan_WorkFlow_PhasesData.Phase_Number , Name = Spartan_WorkFlow_PhasesData.Name , Phase_Type = Spartan_WorkFlow_PhasesData.Phase_Type , Phase_TypeDescription = (string)Spartan_WorkFlow_PhasesData.Phase_Type_Spartan_WorkFlow_Phase_Type.Description , Type_of_Work_Distribution = Spartan_WorkFlow_PhasesData.Type_of_Work_Distribution , Type_of_Work_DistributionDescription = (string)Spartan_WorkFlow_PhasesData.Type_of_Work_Distribution_Spartan_WorkFlow_Type_Work_Distribution.Description , Type_Flow_Control = Spartan_WorkFlow_PhasesData.Type_Flow_Control , Type_Flow_ControlDescription = (string)Spartan_WorkFlow_PhasesData.Type_Flow_Control_Spartan_WorkFlow_Type_Flow_Control.Description , Phase_Status = Spartan_WorkFlow_PhasesData.Phase_Status , Phase_StatusDescription = (string)Spartan_WorkFlow_PhasesData.Phase_Status_Spartan_WorkFlow_Phase_Status.Description }; } } if (!_tokenManager.GenerateToken()) { return(Json(null, JsonRequestBehavior.AllowGet)); } _ISpartan_WorkFlow_Phase_TypeApiConsumer.SetAuthHeader(_tokenManager.Token); var Spartan_WorkFlow_Phase_Types_Phase_Type = _ISpartan_WorkFlow_Phase_TypeApiConsumer.SelAll(true); if (Spartan_WorkFlow_Phase_Types_Phase_Type != null && Spartan_WorkFlow_Phase_Types_Phase_Type.Resource != null) { ViewBag.Spartan_WorkFlow_Phase_Types_Phase_Type = Spartan_WorkFlow_Phase_Types_Phase_Type.Resource.OrderBy(m => m.Description).Select(m => new SelectListItem { Text = m.Description.ToString(), Value = Convert.ToString(m.Phase_TypeId) }).ToList(); } _ISpartan_WorkFlow_Type_Work_DistributionApiConsumer.SetAuthHeader(_tokenManager.Token); var Spartan_WorkFlow_Type_Work_Distributions_Type_of_Work_Distribution = _ISpartan_WorkFlow_Type_Work_DistributionApiConsumer.SelAll(true); if (Spartan_WorkFlow_Type_Work_Distributions_Type_of_Work_Distribution != null && Spartan_WorkFlow_Type_Work_Distributions_Type_of_Work_Distribution.Resource != null) { ViewBag.Spartan_WorkFlow_Type_Work_Distributions_Type_of_Work_Distribution = Spartan_WorkFlow_Type_Work_Distributions_Type_of_Work_Distribution.Resource.OrderBy(m => m.Description).Select(m => new SelectListItem { Text = m.Description.ToString(), Value = Convert.ToString(m.Type_of_Work_DistributionId) }).ToList(); } _ISpartan_WorkFlow_Type_Flow_ControlApiConsumer.SetAuthHeader(_tokenManager.Token); var Spartan_WorkFlow_Type_Flow_Controls_Type_Flow_Control = _ISpartan_WorkFlow_Type_Flow_ControlApiConsumer.SelAll(true); if (Spartan_WorkFlow_Type_Flow_Controls_Type_Flow_Control != null && Spartan_WorkFlow_Type_Flow_Controls_Type_Flow_Control.Resource != null) { ViewBag.Spartan_WorkFlow_Type_Flow_Controls_Type_Flow_Control = Spartan_WorkFlow_Type_Flow_Controls_Type_Flow_Control.Resource.OrderBy(m => m.Description).Select(m => new SelectListItem { Text = m.Description.ToString(), Value = Convert.ToString(m.Type_Flow_ControlId) }).ToList(); } _ISpartan_WorkFlow_Phase_StatusApiConsumer.SetAuthHeader(_tokenManager.Token); var Spartan_WorkFlow_Phase_Statuss_Phase_Status = _ISpartan_WorkFlow_Phase_StatusApiConsumer.SelAll(true); if (Spartan_WorkFlow_Phase_Statuss_Phase_Status != null && Spartan_WorkFlow_Phase_Statuss_Phase_Status.Resource != null) { ViewBag.Spartan_WorkFlow_Phase_Statuss_Phase_Status = Spartan_WorkFlow_Phase_Statuss_Phase_Status.Resource.OrderBy(m => m.Description).Select(m => new SelectListItem { Text = m.Description.ToString(), Value = Convert.ToString(m.StatusId) }).ToList(); } return(PartialView("AddSpartan_WorkFlow_Phases", varSpartan_WorkFlow_Phases)); }
/// <summary> /// Used to get the Permission for Role Object /// </summary> /// <param name="roleId"></param> /// <param name="objectId"></param> /// <returns></returns> public static Permission GetRoleObjectPermission(int roleId, int objectId = 0, int moduleId = 0, int attributeId = 0) { try { if (!_tokenManager.GenerateToken("admin", "admin")) { throw new ArgumentException("Unable to Authorize the application"); } if (objectId == 0 && attributeId != 0) { _ISpartan_MetadataApiConsumer.SetAuthHeader(_tokenManager.Token); var resultMeta = _ISpartan_MetadataApiConsumer.GetByKey(attributeId, false).Resource; objectId = Convert.ToInt32(resultMeta.Related_Object_Id); moduleId = 0; } _spartaneUserRoleObjectFunctionApiConsumer.SetAuthHeader(_tokenManager.Token); _spartaneFunctionApiConsumer.SetAuthHeader(_tokenManager.Token); string where = "spartan_user_rule_object_function.Object_Id=" + objectId + " AND spartan_user_rule_object_function.Spartan_User_Rule=" + roleId; if (moduleId != 0) { where += " AND spartan_user_rule_object_function.Module_Id=" + moduleId; } var userRoleObjectFunctions = _spartaneUserRoleObjectFunctionApiConsumer.ListaSelAll(1, int.MaxValue, where, "").Resource; if (userRoleObjectFunctions == null || userRoleObjectFunctions.Spartan_User_Rule_Object_Functions == null) { return(new Permission()); } var spartaneFuctions = new List <SpartaneFunction>(); foreach (var userRoleObjectFunction in userRoleObjectFunctions.Spartan_User_Rule_Object_Functions) { spartaneFuctions.Add(_spartaneFunctionApiConsumer.GetByKey(userRoleObjectFunction.Fuction_Id, true).Resource); } Permission ObjectPermissions = GetSpartanePermission(spartaneFuctions); //WorkFlows Permissions #region WorkFlows Permissions if (System.Web.HttpContext.Current.Session != null) { if (System.Web.HttpContext.Current.Session["Phase"] != null) { if (System.Web.HttpContext.Current.Session["Phase"].ToString() != "") { //Consult if the object has workflow assigned _Spartan_WorkFlowApiConsumer.SetAuthHeader(_tokenManager.Token); var workflowObject = _Spartan_WorkFlowApiConsumer.ListaSelAll(1, int.MaxValue, "spartan_workflow.object = " + objectId.ToString() + " and spartan_workflow.status=1", "").Resource; if (workflowObject != null) { if (workflowObject.Spartan_WorkFlows.Count != 0) { //Consultar id de Fase _Spartan_WorkFlow_PhasesApiConsumer.SetAuthHeader(_tokenManager.Token); var phaseObject = _Spartan_WorkFlow_PhasesApiConsumer.ListaSelAll(1, int.MaxValue, "Spartan_WorkFlow_Phases.WorkFlow=" + workflowObject.Spartan_WorkFlows[0].WorkFlowId.ToString() + " and Spartan_WorkFlow_Phases.Phase_Number=" + System.Web.HttpContext.Current.Session["Phase"].ToString() + " and Spartan_WorkFlow_Phases.phase_status=1", "").Resource; if (phaseObject != null) { if (phaseObject.Spartan_WorkFlow_Phasess.Count != 0) { //Consultar Permisos _Spartan_WorkFlow_Roles_by_StateApiConsumer.SetAuthHeader(_tokenManager.Token); var rolesObject = _Spartan_WorkFlow_Roles_by_StateApiConsumer.ListaSelAll(1, int.MaxValue, "Spartan_WorkFlow_Roles_by_State.Spartan_WorkFlow=" + workflowObject.Spartan_WorkFlows[0].WorkFlowId.ToString() + " and Spartan_WorkFlow_Roles_by_State.Phase=" + phaseObject.Spartan_WorkFlow_Phasess[0].PhasesId.ToString() + " and Spartan_WorkFlow_Roles_by_State.User_Role=" + roleId.ToString(), "").Resource; if (rolesObject != null) { if (rolesObject.Spartan_WorkFlow_Roles_by_States.Count != 0) { if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_To_New == false) { ObjectPermissions.New = false; } if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_To_Modify == false) { ObjectPermissions.Edit = false; } if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_to_Delete == false) { ObjectPermissions.Delete = false; } if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_To_Export == false) { ObjectPermissions.Export = false; } if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_To_Print == false) { ObjectPermissions.Print = false; } if (rolesObject.Spartan_WorkFlow_Roles_by_States[0].Permission_Settings == false) { ObjectPermissions.Configure = false; } } } } } } } } } } #endregion return(ObjectPermissions); } catch (ArgumentException) { return(new Permission()); } catch (Exception ex) { throw ex; } }