public IActionResult GetEntities([FromQuery] string entityType = "") { try { var stopwatch = StopwatchLogger.Start(_log); _log.Info("Called MetadataController GetEntities"); var result = _iMetadataManager.GetEntities(false).OrderBy(t => t.Name); if (entityType.ToLower() == "primaryentity") { result = result.Where(a => a.Type.ToLower() == "primaryentity" || a.Type.ToLower() == "detailentity" || a.Type.ToLower() == "intersectentity").OrderBy(t => t.Name); } stopwatch.StopAndLog("GetEntities of MetadataController"); return(_iJsonMessage.IgnoreNullableObject(result)); } catch (Exception ex) { //_log.Error("Error calling MetadataController.GetEntities method."); //throw new Exception(ex.Message); _log.Error(ExceptionFormatter.SerializeToString(ex)); return(StatusCode((int)HttpStatusCode.InternalServerError, ApiConstant.CustomErrorMessage)); } }
bool IManagerWorkFlowSecurity.InitializeRootTenantWorkFlow(Guid tenantId) { var allEntities = iMetadataManager.GetEntities(false); // Filtwer all Workflow supported entity var workFlowEntities = (from allEntity in allEntities where allEntity.SupportWorkflow select allEntity).ToList(); foreach (var workFlowEntity in workFlowEntities) { var entityContextAll = iMetadataManager.GetEntitityByName(workFlowEntity.Name); var entityContext = iMetadataManager.GetEntityContextByEntityName(workFlowEntity.Name); foreach (var subtype in workFlowEntity.Subtypes) { var workflowInfo = new WorkFlowInfo { WorkFlowId = Guid.NewGuid(), EntityId = entityContext, Status = true, SubTypeCode = iMetadataManager.GetSubTypeId(workFlowEntity.Name, subtype) }; _managerWorkFlow.CreateWorkFlow(tenantId, workflowInfo); //all steps from static classes (Transition) List <WorkFlowResource> allSteps = WorkFlowHelper.GetAllSteps(entityContext); var count = 0; foreach (var allStep in allSteps) { var workFlowStep = new WorkFlowStepInfo { WorkFlowId = workflowInfo.WorkFlowId, TransitionType = new ItemName { Id = allStep.Id }, SequenceNumber = count++ }; workFlowStep.WorkFlowStepId = _managerWorkFlowStep.CreateWorkFlowStep(tenantId, workFlowStep); } // (Operations) List <WorkFlowOperationInfo> workFlowOperations = new List <WorkFlowOperationInfo>(); foreach (var entityCon in entityContextAll.Operations) { if (entityCon.Name == "Create") { workFlowOperations.Add(new WorkFlowOperationInfo { WorkFlowOperationId = Guid.NewGuid(), OperationType = WorkFlowOperationType.Create, WorkFlowId = workflowInfo.WorkFlowId }); } else if (entityCon.Name == "Update") { workFlowOperations.Add(new WorkFlowOperationInfo { WorkFlowOperationId = Guid.NewGuid(), OperationType = WorkFlowOperationType.Update, WorkFlowId = workflowInfo.WorkFlowId }); } else if (entityCon.Name == "Delete") { workFlowOperations.Add(new WorkFlowOperationInfo { WorkFlowOperationId = Guid.NewGuid(), OperationType = WorkFlowOperationType.Delete, WorkFlowId = workflowInfo.WorkFlowId }); } else if (entityCon.Name == "UpdateStatus") { workFlowOperations.Add(new WorkFlowOperationInfo { WorkFlowOperationId = Guid.NewGuid(), OperationType = WorkFlowOperationType.UpdateStatus, WorkFlowId = workflowInfo.WorkFlowId }); } } _managerOperation.CreateWorkFlowOperations(tenantId, workFlowOperations); count = 0; List <WorkFlowProcessInfo> workFlowProcesses = new List <WorkFlowProcessInfo>(); foreach (var workFlowOperation in workFlowOperations) { workFlowProcesses.Add(new WorkFlowProcessInfo { WorkFlowProcessId = Guid.NewGuid(), WorkFlowId = workflowInfo.WorkFlowId, OperationOrTransactionId = workFlowOperation.WorkFlowOperationId, OperationOrTransactionType = (int)OperationOrTransactionType.Operation, ProcessType = (int)WorkFlowProcessType.PreProcess }); workFlowProcesses.Add(new WorkFlowProcessInfo { WorkFlowProcessId = Guid.NewGuid(), WorkFlowId = workflowInfo.WorkFlowId, OperationOrTransactionId = workFlowOperation.WorkFlowOperationId, OperationOrTransactionType = (int)OperationOrTransactionType.Operation, ProcessType = (int)WorkFlowProcessType.Process }); workFlowProcesses.Add(new WorkFlowProcessInfo { WorkFlowProcessId = Guid.NewGuid(), WorkFlowId = workflowInfo.WorkFlowId, OperationOrTransactionId = workFlowOperation.WorkFlowOperationId, OperationOrTransactionType = (int)OperationOrTransactionType.Operation, ProcessType = (int)WorkFlowProcessType.PostProcess }); } _managerWorkFlowProcess.CreateWorkFlowProcess(tenantId, workFlowProcesses); } } return(true); }