示例#1
0
        public RedirectResult SortWidgetsAction(PageWidgetSortModel pageWidgetSortModel, string returnUrl = null)
        {
            _layoutAreaAdminService.SetWidgetOrders(pageWidgetSortModel);

            return Redirect(!string.IsNullOrEmpty(returnUrl)
                ? returnUrl
                : "/Admin/LayoutArea/Edit/" + pageWidgetSortModel.LayoutAreaId);
        }
示例#2
0
 public void LayoutAreaController_SortWidgetsForPage_IsResultOfCallToGetSortModel()
 {
     var newLayoutArea = GetNewLayoutArea();
     var pageWidgetSortModel = new PageWidgetSortModel();
     A.CallTo(() => _layoutAreaAdminService.GetSortModel(newLayoutArea, 2)).Returns(pageWidgetSortModel);
     _layoutAreaController.SortWidgetsForPage(newLayoutArea, 2)
         .Model.Should()
         .Be(pageWidgetSortModel);
 }
示例#3
0
 public void SetWidgetOrders(PageWidgetSortModel pageWidgetSortModel)
 {
     _session.Transact(session => pageWidgetSortModel.Widgets.ForEach(model =>
                                                                          {
                                                                              var widget = _session.Get<Widget>(model.Id);
                                                                              widget.DisplayOrder = model.Order;
                                                                              session.SaveOrUpdate(widget);
                                                                          }));
 }
示例#4
0
        public void SetWidgetForPageOrders(PageWidgetSortModel pageWidgetSortModel)
        {
            _session.Transact(session =>
            {

                var layoutArea = _session.Get<LayoutArea>(pageWidgetSortModel.LayoutAreaId);
                var webpage = _session.Get<Webpage>(pageWidgetSortModel.WebpageId);
                pageWidgetSortModel.Widgets.ForEach(model =>
                                                        {
                                                            var widget = _session.Get<Widget>(model.Id);

                                                            var widgetSort =
                                                                _session.QueryOver<PageWidgetSort>().Where(
                                                                    sort =>
                                                                    sort.LayoutArea == layoutArea &&
                                                                    sort.Webpage == webpage &&
                                                                    sort.Widget == widget).SingleOrDefault() ??
                                                                new PageWidgetSort
                                                                    {
                                                                        LayoutArea =
                                                                            layoutArea,
                                                                        Webpage = webpage,
                                                                        Widget = widget
                                                                    };
                                                            widgetSort.Order = model.Order;
                                                            if (!layoutArea.PageWidgetSorts.Contains(widgetSort))
                                                                layoutArea.PageWidgetSorts.Add(widgetSort);
                                                            if (!webpage.PageWidgetSorts.Contains(widgetSort))
                                                                webpage.PageWidgetSorts.Add(widgetSort);
                                                            if (!widget.PageWidgetSorts.Contains(widgetSort))
                                                                widget.PageWidgetSorts.Add(widgetSort);
                                                            session.SaveOrUpdate(widgetSort);
                                                        });

            });
        }
示例#5
0
        public ActionResult SortWidgetsForPage(PageWidgetSortModel pageWidgetSortModel, string returnUrl = null)
        {
            _layoutAreaAdminService.SetWidgetForPageOrders(pageWidgetSortModel);

            if (!string.IsNullOrEmpty(returnUrl))
                return Redirect(returnUrl);

            return RedirectToAction("Edit", "Webpage", new {id = pageWidgetSortModel.WebpageId});
        }