public ActionResult LoadWorkflowList(string blockName, int appId, string selectedWorkflowName) { DBEntities e = COREobject.i.Context; List <SelectListItem> result = new List <SelectListItem>(); TapestryDesignerBlock block = e.TapestryDesignerBlocks.Where(b => b.Name == blockName && b.ParentMetablock.ParentAppId == appId).SingleOrDefault(); if (block != null) { foreach (TapestryDesignerWorkflowRule wf in block.BlockCommits.OrderByDescending(c => c.Id).First().WorkflowRules) { foreach (TapestryDesignerSwimlane sl in wf.Swimlanes) { foreach (TapestryDesignerWorkflowItem wi in sl.WorkflowItems.Where(i => i.SymbolType == "circle-event")) { result.Add(new SelectListItem() { Text = wf.Name, Value = wi.Label, Selected = wi.Label == selectedWorkflowName }); } } } } return(Json(result.OrderBy(i => i.Text).ToList())); }
private void saveBlockContent(TapestryDesignerBlock block) { // block Block resultBlock = _blockMapping[block]; var stateColumnMapping = new Dictionary <int, string>(); TapestryDesignerBlockCommit commit = block.BlockCommits.OrderBy(bc => bc.Timestamp).LastOrDefault(); if (commit == null) // no commit { return; } resultBlock.RoleWhitelist = commit.RoleWhitelist; // Resources foreach (TapestryDesignerResourceRule resourceRule in commit.ResourceRules) { var pair = saveResourceRule(resourceRule, _app, stateColumnMapping, resultBlock); //resultBlock.ResourceMappingPairs.Add(pair); } // ActionRule foreach (TapestryDesignerWorkflowRule workflowRule in commit.WorkflowRules) { saveWFRule(workflowRule, resultBlock, resultBlock.WorkFlow, stateColumnMapping); } if (!string.IsNullOrEmpty(commit.AssociatedPageIds)) { var pageIdList = commit.AssociatedPageIds.Split(',').Select(int.Parse).ToList(); Page mainPage = null; foreach (int pageId in pageIdList) { var currentPage = _masterContext.MozaicEditorPages.Find(pageId); if (!currentPage.IsModal) { mainPage = _context.Pages.Find(currentPage.CompiledPageId); break; } } resultBlock.EditorPageId = pageIdList[0]; resultBlock.MozaicPage = mainPage; } if (!string.IsNullOrEmpty(commit.AssociatedBootstrapPageIds)) { var pageIdList = commit.AssociatedBootstrapPageIds.Split(',').Select(int.Parse).ToList(); Page mainPage = null; foreach (int pageId in pageIdList) { var currentPage = _masterContext.MozaicBootstrapPages.Find(pageId); mainPage = _context.Pages.Find(currentPage.CompiledPageId); break; } resultBlock.BootstrapPageId = pageIdList[0]; resultBlock.MozaicPage = mainPage; } //block.IsChanged = false; }