Пример #1
0
        public void SetWidgetForPageOrders(PageWidgetSortModel pageWidgetSortModel)
        {
            _layoutAreaRepository.Transact(layoutAreaRepository =>
            {
                var layoutArea = layoutAreaRepository.Get(pageWidgetSortModel.LayoutAreaId);
                var webpage    = _webpageRepository.Get(pageWidgetSortModel.WebpageId);
                pageWidgetSortModel.Widgets.ForEach(model =>
                {
                    var widget = _widgetRepository.Get(model.Id);

                    PageWidgetSort widgetSort = _pageWidgetSortRepository.Query()
                                                .SingleOrDefault(
                        sort => sort.LayoutArea == layoutArea &&
                        sort.Webpage == webpage &&
                        sort.Widget == widget);
                    var isNew = widgetSort == null;
                    if (isNew)
                    {
                        widgetSort = 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);
                    }
                    if (isNew)
                    {
                        _pageWidgetSortRepository.Add(widgetSort);
                    }
                    else
                    {
                        _pageWidgetSortRepository.Update(widgetSort);
                    }
                });
            });
        }
Пример #2
0
        public void SetWidgetForPageOrders(PageWidgetSortModel pageWidgetSortModel)
        {
            _session.Transact(session =>
            {
                LayoutArea layoutArea = _session.Get <LayoutArea>(pageWidgetSortModel.LayoutAreaId);
                Webpage webpage       = _session.Get <Webpage>(pageWidgetSortModel.WebpageId);
                pageWidgetSortModel.Widgets.ForEach(model =>
                {
                    Widget widget = _session.Get <Widget>(model.Id);

                    PageWidgetSort 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);
                });
            });
        }