Example #1
0
        public override async Task InitializeAsync()
        {
            using (var api = CreateApi())
            {
                Piranha.App.Init(api);

                new ContentTypeBuilder(api)
                .AddType(typeof(MyPage))
                .AddType(typeof(MySiteContent))
                .Build();

                await api.Sites.SaveAsync(new Site
                {
                    Id         = SITE_1_ID,
                    SiteTypeId = "MySiteContent",
                    InternalId = SITE_1,
                    Title      = SITE_1,
                    Hostnames  = SITE_1_HOSTS,
                    IsDefault  = true
                });

                await api.Sites.SaveAsync(new Site
                {
                    InternalId = SITE_4,
                    Title      = SITE_4
                });

                await api.Sites.SaveAsync(new Site
                {
                    InternalId = SITE_5,
                    Title      = SITE_5
                });

                await api.Sites.SaveAsync(new Site
                {
                    InternalId = SITE_6,
                    Title      = SITE_6
                });

                // Sites for testing hostname routing
                await api.Sites.SaveAsync(new Site
                {
                    InternalId = "RoutingTest1",
                    Title      = "RoutingTest1",
                    Hostnames  = "mydomain.com,localhost"
                });

                await api.Sites.SaveAsync(new Site
                {
                    InternalId = "RoutingTest2",
                    Title      = "RoutingTest2",
                    Hostnames  = " mydomain.com/en"
                });

                await api.Sites.SaveAsync(new Site
                {
                    InternalId = "RoutingTest3",
                    Title      = "RoutingTest3",
                    Hostnames  = "sub.mydomain.com , sub2.localhost"
                });

                var content = await MySiteContent.CreateAsync(api);

                content.Header = "<p>Lorem ipsum</p>";
                content.Footer = "<p>Tellus Ligula</p>";
                await api.Sites.SaveContentAsync(SITE_1_ID, content);

                var page1 = await MyPage.CreateAsync(api);

                page1.SiteId    = SITE_1_ID;
                page1.Title     = "Startpage";
                page1.Text      = "Welcome";
                page1.IsHidden  = true;
                page1.Published = DateTime.Now;
                await api.Pages.SaveAsync(page1);

                var page2 = await MyPage.CreateAsync(api);

                page2.SiteId    = SITE_1_ID;
                page2.SortOrder = 1;
                page2.Title     = "Second page";
                page2.Text      = "The second page";
                await api.Pages.SaveAsync(page2);

                var page3 = await MyPage.CreateAsync(api);

                page3.SiteId    = SITE_1_ID;
                page3.ParentId  = page2.Id;
                page3.Title     = "Subpage";
                page3.Text      = "The subpage";
                page3.Published = DateTime.Now;
                await api.Pages.SaveAsync(page3);
            }
        }