Example #1
0
        public async Task SaveGetContent()
        {
            var repository = new SiteRepository(SessionFactory, new ContentServiceFactory(_contentFactory));
            var internalId = Guid.NewGuid().ToString("N");
            var site       = new Site
            {
                Description = $"Site description {internalId}",
                InternalId  = internalId,
                Title       = $"Title {internalId}",
                IsDefault   = true,
                SiteTypeId  = "MySiteContent"
            };
            var content = new MySiteContent
            {
                Header = "<p>Lorem ipsum</p>",
                Footer = "<p>Tellus Ligula</p>"
            };
            await repository.Save(site).ConfigureAwait(false);

            var siteId = site.Id;
            await repository.SaveContent(siteId, content).ConfigureAwait(false);

            var contentId = content.Id;
            var retrieved = await repository.GetContentById <MySiteContent>(contentId).ConfigureAwait(false);

            Assert.AreNotEqual(Guid.Empty, retrieved.Id);
            Assert.AreEqual(content.Header, retrieved.Header);
            Assert.AreEqual(content.Footer, retrieved.Footer);
        }
Example #2
0
        public void Map_SiteContentBase_to_SiteEntity()
        {
            var mapper = Module.Mapper;
            var model  = new MySiteContent()
            {
                Id = Guid.NewGuid()
            };
            var entity = new SiteEntity();

            mapper.Map(model, entity);
            Assert.AreEqual(Guid.Empty, entity.Id);
        }
Example #3
0
        protected override void Init()
        {
            using (var api = new Api(GetDb(), new ContentServiceFactory(services), storage, cache)) {
                Piranha.App.Init();

                var builder = new PageTypeBuilder(api)
                              .AddType(typeof(MyPage));
                builder.Build();

                var siteBuilder = new SiteTypeBuilder(api)
                                  .AddType(typeof(MySiteContent));
                siteBuilder.Build();

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

                api.Sites.Save(new Data.Site()
                {
                    InternalId = SITE_4,
                    Title      = SITE_4
                });
                api.Sites.Save(new Data.Site()
                {
                    InternalId = SITE_5,
                    Title      = SITE_5
                });
                api.Sites.Save(new Data.Site()
                {
                    InternalId = SITE_6,
                    Title      = SITE_6
                });

                // Sites for testing hostname routing
                api.Sites.Save(new Data.Site
                {
                    InternalId = "RoutingTest1",
                    Title      = "RoutingTest1",
                    Hostnames  = "mydomain.com,localhost"
                });
                api.Sites.Save(new Data.Site
                {
                    InternalId = "RoutingTest2",
                    Title      = "RoutingTest2",
                    Hostnames  = " mydomain.com/en"
                });
                api.Sites.Save(new Data.Site
                {
                    InternalId = "RoutingTest3",
                    Title      = "RoutingTest3",
                    Hostnames  = "sub.mydomain.com , sub2.localhost"
                });

                var content = MySiteContent.Create(api);
                content.Header = "<p>Lorem ipsum</p>";
                content.Footer = "<p>Tellus Ligula</p>";
                api.Sites.SaveContent(SITE_1_ID, content);

                var page1 = MyPage.Create(api);
                page1.SiteId    = SITE_1_ID;
                page1.Title     = "Startpage";
                page1.Text      = "Welcome";
                page1.IsHidden  = true;
                page1.Published = DateTime.Now;
                api.Pages.Save(page1);

                var page2 = MyPage.Create(api);
                page2.SiteId    = SITE_1_ID;
                page2.SortOrder = 1;
                page2.Title     = "Second page";
                page2.Text      = "The second page";
                api.Pages.Save(page2);

                var page3 = MyPage.Create(api);
                page3.SiteId    = SITE_1_ID;
                page3.ParentId  = page2.Id;
                page3.Title     = "Subpage";
                page3.Text      = "The subpage";
                page3.Published = DateTime.Now;
                api.Pages.Save(page3);
            }
        }
Example #4
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);
            }
        }