public AdminEditViewModel GetQueryViewModel(QueryPart query) { var viewModel = new AdminEditViewModel { Id = query.Id, Name = query.Name }; #region Load Filters var filterGroupEntries = new List<FilterGroupEntry>(); foreach (var group in query.FilterGroups) { var filterEntries = group.Filters .Select(filter => new FilterEntry { Category = filter.Category, Type = filter.Type, FilterRecordId = filter.Id, DisplayText = filter.Description }).ToList(); filterGroupEntries.Add(new FilterGroupEntry {Id = group.Id, Filters = filterEntries}); } viewModel.FilterGroups = filterGroupEntries; #endregion #region Load Sort criterias var sortCriterionEntries = new List<SortCriterionEntry>(); var allSortCriteria = _projectionManager.DescribeSortCriteria() .SelectMany(x => x.Descriptors).ToList(); foreach (var sortCriterion in query.SortCriteria.OrderBy(s => s.Position)) { var category = sortCriterion.Category; var type = sortCriterion.Type; var f = allSortCriteria.FirstOrDefault(x => category == x.Category && type == x.Type); if (f != null) { sortCriterionEntries.Add( new SortCriterionEntry { Category = f.Category, Type = f.Type, SortCriterionRecordId = sortCriterion.Id, DisplayText = String.IsNullOrWhiteSpace(sortCriterion.Description) ? f.Display(new SortCriterionContext {State = FormParametersHelper.ToDynamic(sortCriterion.State)}).Text : sortCriterion.Description }); } } viewModel.SortCriteria = sortCriterionEntries; #endregion #region Load Layouts var layoutEntries = new List<LayoutEntry>(); var allLayouts = _projectionManager.DescribeLayouts().SelectMany(x => x.Descriptors).ToList(); foreach (var layout in query.Layouts) { var category = layout.Category; var type = layout.Type; var f = allLayouts.FirstOrDefault(x => category == x.Category && type == x.Type); if (f != null) { layoutEntries.Add( new LayoutEntry { Category = f.Category, Type = f.Type, LayoutRecordId = layout.Id, DisplayText = String.IsNullOrWhiteSpace(layout.Description) ? f.Display(new LayoutContext {State = FormParametersHelper.ToDynamic(layout.State)}).Text : layout.Description }); } } viewModel.Layouts = layoutEntries; #endregion return viewModel; }
public ProjectionEditViewModel() { QueryViewModel = new AdminEditViewModel(); LayoutViewModel = new LayoutEditViewModel(); AllFields = new List<ContentPartFieldDefinition>(); }