Esempio n. 1
0
        public void LayoutAreaController_AddGet_ShouldSetTheLayoutIdToTheValueFromTheConstructor()
        {
            var layout = new Layout();

            PartialViewResult partialViewResult = _layoutAreaController.Add(layout);

            partialViewResult.Model.As<LayoutArea>().Layout.Should().Be(layout);
        }
Esempio n. 2
0
        public void LayoutController_EditGet_ShouldReturnLayoutAsViewModel()
        {
            var layout = new Layout {Id = 1};

            var result = _layoutController.Edit_Get(layout) as ViewResult;

            result.Model.Should().Be(layout);
        }
Esempio n. 3
0
        public void LayoutController_EditGet_ShouldReturnAViewResult()
        {
            var layout = new Layout {Id = 1};

            ActionResult result = _layoutController.Edit_Get(layout);

            result.Should().BeOfType<ViewResult>();
        }
Esempio n. 4
0
        public void LayoutController_AddPost_ShouldCallSaveDocument()
        {
            var layout = new Layout();

            _layoutController.Add(layout);

            A.CallTo(() => _documentService.AddDocument(layout)).MustHaveHappened(Repeated.Exactly.Once);
        }
Esempio n. 5
0
 public LayoutArea GetArea(Layout layout, string name)
 {
     return _session.QueryOver<LayoutArea>()
         .Where(x => x.Layout == layout && x.AreaName == name)
         .Fetch(area => area.Widgets).Eager
         .TransformUsing(Transformers.DistinctRootEntity)
         .SingleOrDefault();
 }
Esempio n. 6
0
        public void LayoutController_AddGet_ShouldSetParentOfModelToParentInMethod()
        {
            var parent = new Layout {Id = 1};
            A.CallTo(() => _documentService.GetDocument<Layout>(1)).Returns(parent);

            var actionResult = _layoutController.Add_Get(1) as ViewResult;

            actionResult.Model.As<Layout>().Parent.Should().Be(parent);
        }
        public void LayoutAreaAdminService_SaveArea_IfLayoutIsSetAddLayoutAreaToLayoutAreasList()
        {
            var layout = new Layout();
            var layoutArea = new LayoutArea{Layout = layout};

            _layoutAreaAdminService.SaveArea(layoutArea);

            layout.LayoutAreas.Should().Contain(layoutArea);
        }
Esempio n. 8
0
        public void LayoutController_AddPost_ShouldRedirectToView()
        {
            var layout = new Layout {Id = 1};

            var result = _layoutController.Add(layout) as RedirectToRouteResult;

            result.RouteValues["action"].Should().Be("Edit");
            result.RouteValues["id"].Should().Be(1);
        }
        public void LayoutAreaAdminService_GetAreaWhereItDoesNotExist_ShouldReturnNull()
        {
            var layoutAreaService = _layoutAreaAdminService;
            var layout = new Layout {Name = "Layout"};
            Session.Transact(session => session.SaveOrUpdate(layout));

            var loadedArea = layoutAreaService.GetArea(layout, "Area.Name");

            loadedArea.Should().BeNull();
        }
Esempio n. 10
0
        public void LayoutAreaController_AddPost_ShouldCallSaveArea()
        {
            var layoutArea = new LayoutArea();
            var layout = new Layout { Id = 1 };
            layoutArea.Layout = layout;

            _layoutAreaController.Add(layoutArea);

            A.CallTo(() => _layoutAreaAdminService.SaveArea(layoutArea)).MustHaveHappened();
        }
Esempio n. 11
0
        public ActionResult Add_Get(int? id)
        {
            //Build list 
            var model = new Layout
            {
                Parent = id.HasValue ? _documentService.GetDocument<Layout>(id.Value) : null
            };

            return View(model);
        }
Esempio n. 12
0
        public IEnumerable<SelectListItem> GetValidParents(Layout doc)
        {
            IList<Layout> potentialParents = _session.QueryOver<Layout>().Cacheable().List<Layout>();
            List<SelectListItem> result = potentialParents.Distinct()
                .Where(page => page.Id != doc.Id)
                .OrderBy(x => x.Name)
                .
                BuildSelectItemList(page => page.Name, page => page.Id.ToString(),
                    webpage1 => doc.Parent != null && doc.ParentId == webpage1.Id, emptyItem: null);

            return result;
        }
Esempio n. 13
0
        public void LayoutAreaController_AddPost_ShouldRedirectToEditLayout()
        {
            var layoutArea = new LayoutArea();
            var layout = new Layout { Id = 1 };
            layoutArea.Layout = layout;

            ActionResult actionResult = _layoutAreaController.Add(layoutArea);

            actionResult.As<RedirectToRouteResult>().RouteValues["action"].Should().Be("Edit");
            actionResult.As<RedirectToRouteResult>().RouteValues["controller"].Should().Be("Layout");
            actionResult.As<RedirectToRouteResult>().RouteValues["id"].Should().Be(1);
        }
        public void SiteSettingsOptionGenerator_GetLayoutOptions_IncludesLayouts()
        {
            var siteSettingsOptionGenerator = new SiteSettingsOptionGenerator();

            var layout = new Layout { Name = "Test Layout", Site = CurrentSite };
            Session.Transact(session => session.Save(layout));

            var errorPageOptions = siteSettingsOptionGenerator.GetLayoutOptions(Session, -1);

            errorPageOptions.Should().HaveCount(1);
            errorPageOptions[0].Text.Should().Be("Test Layout");
            errorPageOptions[0].Value.Should().Be(layout.Id.ToString());
        }
Esempio n. 15
0
        public void LayoutAreaAdminService_GetArea_GetsTheAreaByName()
        {
            var layoutAreaService = _layoutAreaAdminService;
            var layout = new Layout {Name = "Layout"};
            var layoutArea = new LayoutArea {Layout = layout, AreaName = "Area.Name"};
            Session.Transact(session =>
                                 {
                                     session.SaveOrUpdate(layout);
                                     session.SaveOrUpdate(layoutArea);
                                 });

            var loadedArea = layoutAreaService.GetArea(layout, "Area.Name");

            loadedArea.Should().BeSameAs(layoutArea);
        }
Esempio n. 16
0
        public void Setup()
        {

            _session.Transact(session =>
            {
                var baseLayout = new Layout
                {
                    Name = "Base Layout",
                    UrlSegment = "_BaseLayout",
                    LayoutAreas = new List<LayoutArea>()
                };

                session.Save(baseLayout);

                var siteSettings = _configurationProvider.GetSiteSettings<SiteSettings>();
                siteSettings.DefaultLayoutId = baseLayout.Id;
                _configurationProvider.SaveSettings(siteSettings);

                List<LayoutArea> layoutAreas = GetDefaultAreas(baseLayout);
                layoutAreas.ForEach(area => session.Save(area));

                var layoutTwoColumn = new Layout
                {
                    Parent = baseLayout,
                    Name = "Two Column"
                };

                session.Save(layoutTwoColumn);

                var layoutAreasTwoColumn = new List<LayoutArea>
                {
                    new LayoutArea
                    {
                        AreaName = "Right Column",
                        Layout = layoutTwoColumn
                    }
                };
                foreach (LayoutArea layoutArea in layoutAreasTwoColumn)
                    session.Save(layoutArea);

                AddWidgets(layoutAreas).ForEach(widget => session.Save(widget));
            });
        }
Esempio n. 17
0
 private List<LayoutArea> GetDefaultAreas(Layout baseLayout)
 {
     var layoutAreas = new List<LayoutArea>
     {
         new LayoutArea
         {
             AreaName = "Main Navigation",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         },
         new LayoutArea
         {
             AreaName = "Header Left",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         },
         new LayoutArea
         {
             AreaName = "Header Right",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         },
         new LayoutArea
         {
             AreaName = "Before Content",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         },
         new LayoutArea
         {
             AreaName = "After Content",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         },
         new LayoutArea
         {
             AreaName = "Footer",
             CreatedOn = CurrentRequestData.Now,
             Layout = baseLayout,
         }
     };
     return layoutAreas;
 }
Esempio n. 18
0
        private IEnumerable<Layout> GetLayoutCopies(Site @from, Site to, SiteCloneContext siteCloneContext, Layout fromParent = null, Layout toParent = null)
        {
            var queryOver = _session.QueryOver<Layout>().Where(layout => layout.Site.Id == @from.Id);
            queryOver = fromParent == null
                ? queryOver.Where(layout => layout.Parent == null)
                : queryOver.Where(layout => layout.Parent.Id == fromParent.Id);
            var layouts = queryOver.List();

            foreach (var layout in layouts)
            {
                var copy = layout.GetCopyForSite(to);
                siteCloneContext.AddEntry(layout, copy);
                copy.LayoutAreas = layout.LayoutAreas.Select(area =>
                {
                    var areaCopy = area.GetCopyForSite(to);
                    siteCloneContext.AddEntry(area, areaCopy);
                    areaCopy.Layout = copy;
                    areaCopy.Widgets = area.Widgets
                        .Where(widget => widget.Webpage == null)
                        .Select(widget =>
                        {
                            var widgetCopy = widget.GetCopyForSite(to);
                            siteCloneContext.AddEntry(widget, widgetCopy);
                            widgetCopy.LayoutArea = areaCopy;
                            return widgetCopy;
                        })
                        .ToList();
                    return areaCopy;
                }).ToList();
                copy.Parent = toParent;
                yield return copy;
                foreach (var child in GetLayoutCopies(@from, to, siteCloneContext, layout, copy))
                {
                    yield return child;
                }
            }
        }
Esempio n. 19
0
        public LayoutModel Setup(MediaModel mediaModel)
        {
            var layoutModel = new LayoutModel();
            //base layout
            var baseLayout = new Layout
            {
                Name = "Base Ecommerce Layout",
                UrlSegment = "_BaseEcommerceLayout",
                LayoutAreas = new List<LayoutArea>(),
            };
            _documentService.AddDocument(baseLayout);

            //ecommerce main layout
            var eCommerceLayout = new Layout
            {
                Name = "Ecommerce Layout",
                UrlSegment = "_EcommerceLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = baseLayout
            };
            var ecommerceLayoutArea = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Header Left", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Header Middle", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Header Right", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "User Links", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Navigation", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Before Content", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "After Content", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Footer Area 1", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Footer Area 2", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Footer Area 3", Layout = eCommerceLayout},
                new LayoutArea {AreaName = "Footer Area 4", Layout = eCommerceLayout}
            };

            _documentService.AddDocument(eCommerceLayout);
            foreach (LayoutArea area in ecommerceLayoutArea)
                _layoutAreaAdminService.SaveArea(area);

            layoutModel.EcommerceLayout = eCommerceLayout;

            var homeLayout = new Layout
            {
                Name = "Home Layout",
                UrlSegment = "_HomeLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            var homeLayoutAreas = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Home After Content", Layout = homeLayout},
                new LayoutArea {AreaName = "Teaser1", Layout = homeLayout},
                new LayoutArea {AreaName = "Teaser2", Layout = homeLayout},
                new LayoutArea {AreaName = "Teaser3", Layout = homeLayout},
                new LayoutArea {AreaName = "Teaser4", Layout = homeLayout}
            };
            _documentService.AddDocument(homeLayout);
            foreach (LayoutArea area in homeLayoutAreas)
                _layoutAreaAdminService.SaveArea(area);
            layoutModel.HomeLayout = homeLayout;
            //checkout layout
            var checkoutLayout = new Layout
            {
                Name = "Checkout Layout",
                UrlSegment = "_CheckoutLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            var checkoutLayoutAreas = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Checkout Header Left", Layout = checkoutLayout},
                new LayoutArea {AreaName = "Checkout Header Middle", Layout = checkoutLayout},
                new LayoutArea {AreaName = "Checkout Header Right", Layout = checkoutLayout},
                new LayoutArea {AreaName = "Checkout Footer Left", Layout = checkoutLayout},
                new LayoutArea {AreaName = "Checkout Footer Right", Layout = checkoutLayout}
            };
            _documentService.AddDocument(checkoutLayout);

            foreach (LayoutArea area in checkoutLayoutAreas)
                _layoutAreaAdminService.SaveArea(area);
            layoutModel.CheckoutLayout = checkoutLayout;
            //product layout
            var productLayout = new Layout
            {
                Name = "Product Layout",
                UrlSegment = "_ProductLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            var productLayoutAreas = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Below Product Price", Layout = productLayout},
                new LayoutArea {AreaName = "Below Add to cart", Layout = productLayout},
                new LayoutArea {AreaName = "Below Product Information", Layout = productLayout},
                new LayoutArea {AreaName = "Before Product Content", Layout = productLayout},
                new LayoutArea {AreaName = "After Product Content", Layout = productLayout}
            };

            _documentService.AddDocument(productLayout);
            foreach (LayoutArea area in productLayoutAreas)
                _layoutAreaAdminService.SaveArea(area);
            layoutModel.ProductLayout = productLayout;
            //category/search layout
            var searchLayout = new Layout
            {
                Name = "Search Layout",
                UrlSegment = "_SearchLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            var searchLayoutAreas = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Before Filters", Layout = searchLayout},
                new LayoutArea {AreaName = "After Filters", Layout = searchLayout}
            };

            _documentService.AddDocument(searchLayout);
            foreach (LayoutArea area in searchLayoutAreas)
                _layoutAreaAdminService.SaveArea(area);
            layoutModel.SearchLayout = searchLayout;

            var contentLayout = new Layout
            {
                Name = "Content Layout",
                UrlSegment = "_ContentLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            _documentService.AddDocument(contentLayout);
            layoutModel.ContentLayout = contentLayout;

            // UserAccount
            var userAccountLayout = new Layout
            {
                Name = "User Account Layout",
                UrlSegment = "_UserAccountLayout",
                LayoutAreas = new List<LayoutArea>(),
                Parent = eCommerceLayout
            };
            var userAccountAreas = new List<LayoutArea>
            {
                new LayoutArea {AreaName = "Right Column", Layout = userAccountLayout}
            };
            _documentService.AddDocument(userAccountLayout);
            foreach (LayoutArea area in userAccountAreas)
                _layoutAreaAdminService.SaveArea(area);
            layoutModel.UserAccountLayout = userAccountLayout;

            //Page templates
            var homeTemplate = new PageTemplate
            {
                Name = "Home Page",
                PageType = typeof (TextPage).FullName,
                UrlGeneratorType = typeof(DefaultWebpageUrlGenerator).FullName,
                Layout = homeLayout
            };
            _pageTemplateAdminService.Add(homeTemplate);

            SetPageDefaults(layoutModel);

            return layoutModel;
        }
Esempio n. 20
0
        public RedirectToRouteResult Set(Layout doc, int? parentVal)
        {
            _layoutAreaAdminService.Set(doc, parentVal);

            return RedirectToAction("Edit", "Layout", new { id = doc.Id });
        }
Esempio n. 21
0
 public virtual ActionResult Edit_Get(Layout doc)
 {
     return View(doc);
 }
Esempio n. 22
0
 public virtual ActionResult Edit(Layout doc)
 {
     _documentService.SaveDocument(doc);
     TempData.SuccessMessages().Add(string.Format("{0} successfully saved", doc.Name));
     return RedirectToAction("Edit", new { id = doc.Id });
 }
Esempio n. 23
0
        public void LayoutAreaController_EditPost_ShouldRedirectBackToTheLayoutOnceDone()
        {
            var layoutArea = new LayoutArea();
            var layout = new Layout { Id = 1 };
            layoutArea.Layout = layout;

            ActionResult actionResult = _layoutAreaController.Edit(layoutArea);

            actionResult.As<RedirectToRouteResult>().RouteValues["action"].Should().Be("Edit");
            actionResult.As<RedirectToRouteResult>().RouteValues["controller"].Should().Be("Layout");
            actionResult.As<RedirectToRouteResult>().RouteValues["id"].Should().Be(1);
        }
Esempio n. 24
0
 public virtual ActionResult Delete_Get(Layout document)
 {
     return PartialView(document);
 }
Esempio n. 25
0
 public virtual ActionResult Delete(Layout document)
 {
     _documentService.DeleteDocument(document);
     TempData.InfoMessages().Add(string.Format("{0} deleted", document.Name));
     return RedirectToAction("Index");
 }
Esempio n. 26
0
 public PartialViewResult Add(Layout layout)
 {
     return PartialView("Add", new LayoutArea {Layout = layout});
 }
Esempio n. 27
0
        public void LayoutAreaAdminService_DeleteArea_AreaIsRemovedFromLayoutsLayoutAreaList()
        {
            var layout = new Layout();
            var layoutArea = new LayoutArea { Layout = layout };
            layout.LayoutAreas.Add(layoutArea);

            _layoutAreaAdminService.DeleteArea(layoutArea);

            layout.LayoutAreas.Should().NotContain(layoutArea);
        }
Esempio n. 28
0
        public void Set(Layout doc, int? parentVal)
        {
            if (doc == null) return;

            Layout parent = parentVal.HasValue ? _session.Get<Layout>(parentVal.Value) : null;

            doc.Parent = parent;

            _documentService.SaveDocument(doc);
        }
Esempio n. 29
0
 public IEnumerable<string> GetPrimary(Layout layout)
 {
     yield return layout.Name;
 }
Esempio n. 30
0
 public IEnumerable<string> GetSecondary(Layout layout)
 {
     yield return layout.UrlSegment;
 }