List <LayoutModel> ILayoutManager.GetLayoutsByEntityName(Guid tenantId, string entityName) { var entityContext = _iMetadataManager.GetEntityContextByEntityName(entityName, false); if (string.IsNullOrEmpty(entityContext)) { return(null); } //return _review.GetLayoutsByEntityName (tenantId, entityContext).OrderBy (x => x.Name).ToList (); var subTypes = _iMetadataManager.GetSubTypesDetails(entityName); var layouts = new List <LayoutModel> (); layouts = _review.GetLayoutsByEntityName(tenantId, entityContext).OrderBy(x => x.Name).ToList(); if (layouts != null && layouts.Count > 0) { for (int i = 0; i < layouts.Count; i++) { if (layouts[i].Subtype != null && layouts[i].Subtype != "") { if (subTypes != null) { foreach (KeyValuePair <string, string> item in subTypes) { if (item.Key == layouts[i].Subtype) { layouts[i].SubtypeeName = item.Value; } } } } } } return(layouts); }
List <WorkFlowInfo> IManagerWorkFlow.GetAllWorkFlowDetails(Guid tenantId, string entityname) { var entityId = iMetadataManager.GetEntityContextByEntityName(entityname); var workFlows = _reviewWorkFlow.GetWorkFlows(tenantId, entityId); var subTypes = iMetadataManager.GetSubTypesDetails(entityname); if (workFlows != null && workFlows.Count > 0) { var allSteps = WorkFlowHelper.GetAllSteps(entityId); var workFlowIds = workFlows.Select(p => p.WorkFlowId).ToList(); var workFlowSteps = _managerWorkFlowStep.GetWorkFlowStepsByWorkFlowIds(tenantId, workFlowIds); var workFlowInnerSteps = _managerWorkFlowInnerStep.GetWorkFlowInnerStepByWorkFlowIds(tenantId, workFlowIds); var roles = _managerWorkFlowRole.GetWorkFlowRolesByWorkFlowIds(tenantId, workFlowIds).ToList(); foreach (var workFlow in workFlows) { var thisWorkFlowRoles = (from role in roles where role.WorkFlowId == workFlow.WorkFlowId select role).ToList(); var allWorkFlowSteps = new List <WorkFlowStepInfo>(); var allStepSavedCount = (from workFlowStep in workFlowSteps where workFlowStep.WorkFlowId == workFlow.WorkFlowId orderby workFlowStep.SequenceNumber descending select workFlowStep.SequenceNumber).FirstOrDefault(); foreach (var step in allSteps) { //return saved step var checkStepsSaved = (from workFlowStep in workFlowSteps where workFlowStep.WorkFlowId == workFlow.WorkFlowId && workFlowStep.TransitionType.Id == step.Id select workFlowStep).FirstOrDefault(); var checkRoles = (from role in thisWorkFlowRoles where role.WorkFlowStepId == checkStepsSaved.WorkFlowStepId select role).ToList(); if (checkStepsSaved != null) { checkStepsSaved.TransitionType.Name = step.Key; checkStepsSaved.WorkFlowId = workFlow.WorkFlowId; checkStepsSaved.Roles = checkRoles; allWorkFlowSteps.Add(checkStepsSaved); } } foreach (var workFlowStep in allWorkFlowSteps) { var itsInnerSteps = (from workFlowInnerStep in workFlowInnerSteps where workFlowInnerStep.WorkFlowId == workFlow.WorkFlowId && workFlowInnerStep.WorkFlowStepId == workFlowStep.WorkFlowStepId select workFlowInnerStep).ToList(); foreach (var workFlowInnerStep in itsInnerSteps) { workFlowInnerStep.TransitionType.Name = (from allStep in allSteps where allStep.Id == workFlowInnerStep.TransitionType.Id select allStep.Key).FirstOrDefault(); } workFlowStep.InnerSteps = itsInnerSteps.OrderBy(p => p.SequenceNumber).ToList(); } workFlow.Steps = allWorkFlowSteps.OrderBy(p => p.SequenceNumber).ToList(); //Chnage sab typesId To name var mapped = subTypes.FirstOrDefault(t => t.Key.Equals(workFlow.SubTypeCode)); if (mapped.Key != null) { workFlow.SubTypeCode = mapped.Value; } workFlow.EntityId = entityname; } } return(workFlows); }
object IManagerWorkFlowSecurity.GetWorkFlowSecurity(Guid tenantId, string entityname) { var subTypes = iMetadataManager.GetSubTypesDetails(entityname); var entityId = iMetadataManager.GetEntityContextByEntityName(entityname); var workFlowItems = _managerWorkFlow.GetWorkFlows(tenantId, entityname); var allRoles = _managerRole.Roles(tenantId); var mainObj = new { roleList = allRoles, workFlows = new List <object>() }; var allSteps = WorkFlowHelper.GetAllSteps(entityId); var workFlowSteps = _managerWorkFlowStep.GetWorkFlowStepsByWorkFlowIds(tenantId, workFlowItems.Select(p => p.WorkFlowId).ToList()); var roles = _managerWorkFlowRole.GetWorkFlowRolesByWorkFlowIds(tenantId, workFlowItems.Select(p => p.WorkFlowId).ToList()); foreach (var workFlowItem in workFlowItems) { var subTypeName = subTypes.FirstOrDefault(t => t.Key.Equals(workFlowItem.SubTypeCode)); var thisWorkFlowRoles = (from role in roles where role.WorkFlowId == workFlowItem.WorkFlowId select role).ToList(); var workFLowObj = new { EntityId = entityname, SubTypeCode = subTypeName.Value, WorkFlowId = workFlowItem.WorkFlowId, Steps = new List <object>() }; var thisWorkFLowSteps = (from workFlowStep in workFlowSteps where workFlowStep.WorkFlowId == workFlowItem.WorkFlowId select workFlowStep).ToList(); foreach (var step in allSteps) { var filteredStep = (from workFlowStep in thisWorkFLowSteps where workFlowStep.TransitionType.Id == step.Id select workFlowStep).FirstOrDefault(); if (filteredStep != null) { var stepObj = new { filteredStep.WorkFlowStepId, filteredStep.WorkFlowId, Name = step.Value, filteredStep.IsAssigmentMandatory, filteredStep.AllotedTime, filteredStep.CriticalTime, ActivatedList = new List <object>(), AccessedList = new List <object>(), AssignedList = new List <object>() }; var checkRoles = (from role in thisWorkFlowRoles where role.WorkFlowStepId == filteredStep.WorkFlowStepId select role).ToList(); if (checkRoles.Count > 0) { foreach (var checkRole in checkRoles) { var rolObj = new { checkRole.RoleAssignmetId, checkRole.RoleId, checkRole.WorkFlowId, checkRole.WorkFlowStepId, name = checkRole.RoleName, checkRole.AssignmentOperationType }; if (checkRole.AssignmentOperationType == (int)WorkFlowRoleType.ActivatedRoles) { stepObj.ActivatedList.Add(rolObj); } if (checkRole.AssignmentOperationType == (int)WorkFlowRoleType.AccessedRoles) { stepObj.AccessedList.Add(rolObj); } if (checkRole.AssignmentOperationType == (int)WorkFlowRoleType.AssignedRoles) { stepObj.AssignedList.Add(rolObj); } } } workFLowObj.Steps.Add(stepObj); } } mainObj.workFlows.Add(workFLowObj); } return(mainObj); }