示例#1
0
        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()));
        }
示例#2
0
        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;
        }