예제 #1
0
        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);
        }
예제 #2
0
        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);
        }