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