Esempio n. 1
0
        public static async Task <SiteTree> CreateSite(I_Content_Service cs, I_Puck_Repository repo, string rootName, List <string> variants, List <bool> variantIsPublished, int levels, int branches, string username)
        {
            var tree = new SiteTree();

            tree.Level  = 1;
            tree.Branch = 1;
            for (var i = 0; i < variants.Count; i++)
            {
                var published = variantIsPublished[i];
                var root      = await cs.Create <Folder>(Guid.Empty, variants[i], rootName, template : "template.cshtml", published : published, userName : username);

                await cs.SaveContent(root, triggerEvents : false, userName : username);

                var revision = repo.CurrentRevision(root.Id, root.Variant);
                tree.Variants.Add(revision);
            }

            async Task CreateLevel(int level, SiteTree ctree)
            {
                if (level > levels)
                {
                    return;
                }
                for (var j = 0; j < branches; j++)
                {
                    var btree = new SiteTree();
                    btree.Level  = level;
                    btree.Branch = j + 1;
                    for (var k = 0; k < variants.Count; k++)
                    {
                        var published = variantIsPublished[k];
                        var model     = await cs.Create <Folder>(ctree.Variants.First().Id, variants[k], (j + 1).ToString(), template : "template.cshtml", published : published, userName : username);

                        await cs.SaveContent(model, triggerEvents : false, userName : username);

                        var revision = repo.CurrentRevision(model.Id, model.Variant);
                        btree.Variants.Add(revision);
                    }
                    ctree.Children.Add(btree);
                    await CreateLevel(level + 1, btree);
                }
            }

            await CreateLevel(2, tree);

            return(tree);
        }
Esempio n. 2
0
        public async Task <ActionResult> PreviewEditor(Guid id, string variant)
        {
            var currentWorkflowItemId = await apiHelper.GetCurrentWorkflowItemId(User.Identity.Name);

            ViewBag.CurrentWorkflowItemId = currentWorkflowItemId.Item1;

            var model = repo.CurrentRevision(id, variant).ToBaseModel();

            return(View(model));
        }