public int CreateProjection(string entityType) { var projectionItem = _contentManager.New("ProjectionPage"); var queryItem = _contentManager.New("Query"); var projectionPart = projectionItem.As<ProjectionPart>(); var queryPart = queryItem.As<QueryPart>(); queryPart.As<TitlePart>().Title = entityType; projectionPart.As<TitlePart>().Title = entityType; _contentManager.Create(queryItem); projectionPart.Record.QueryPartRecord = queryPart.Record; _contentManager.Create(projectionItem); var layoutRecord = new LayoutRecord { Category = "Html", Type = "ngGrid", Description = "DefaultLayoutFor" + queryPart.Name, Display = 1 }; queryPart.Layouts.Add(layoutRecord); projectionPart.Record.LayoutRecord = layoutRecord; var filterGroup = new FilterGroupRecord(); queryPart.Record.FilterGroups.Clear(); queryPart.Record.FilterGroups.Add(filterGroup); var filterRecord = new FilterRecord { Category = "Content", Type = "ContentTypes", Position = filterGroup.Filters.Count, State = GetContentTypeFilterState(entityType) }; filterGroup.Filters.Add(filterRecord); return projectionItem.Id; }
public IEnumerable<JObject> Post(string id, FilterViewModel model) { var pluralService = PluralizationService.CreateService(new CultureInfo("en-US")); if (pluralService.IsPlural(id)) { id = pluralService.Singularize(id); } FilterGroupRecord groupRecord; if (model.Id == 0) { groupRecord = new FilterGroupRecord(); _filterGroupRepository.Create(groupRecord); _entityFilterRepository.Create(new EntityFilterRecord { EntityName = id, FilterGroupRecord = groupRecord, Title = model.Title }); } else { var entityFilterRecord = _entityFilterRepository.Get(model.Id); entityFilterRecord.Title = model.Title; groupRecord = entityFilterRecord.FilterGroupRecord; groupRecord.Filters.Clear(); } foreach (var filter in model.Filters) { if (filter.FormData.Length == 0) { continue; } var record = new FilterRecord { Category = id + "ContentFields", Type = filter.Type, }; var dictionary = filter.FormData.ToDictionary(x => x.Name, x => x.Value); record.State = FormParametersHelper.ToString(dictionary); groupRecord.Filters.Add(record); } return Get(id); }
public IEnumerable<JObject> Post(string id, FilterViewModel model) { var pluralService = PluralizationService.CreateService(new CultureInfo("en-US")); if (pluralService.IsPlural(id)) { id = pluralService.Singularize(id); } var groupRecord = new FilterGroupRecord(); _filterGroupRepository.Create(groupRecord); _entityFilterRepository.Create(new EntityFilterRecord { EntityName = id, FilterGroupRecord = groupRecord, Title = model.Title }); foreach (var filter in model.Filters) { if (filter.FormData.Length == 0) { continue; } var record = new FilterRecord { Category = id + "ContentFields", Type = filter.Type, }; var dictionary = new Dictionary<string, string>(); foreach (var data in filter.FormData) { if (dictionary.ContainsKey(data.Name)) { dictionary[data.Name] += "&" + data.Value; } else { dictionary.Add(data.Name, data.Value); } } record.State = FormParametersHelper.ToString(dictionary); groupRecord.Filters.Add(record); } return Get(id); }
private int CreateQuery(string entityType) { var queryPart = _contentManager.New<QueryPart>("Query"); var filterGroup = new FilterGroupRecord(); queryPart.Record.FilterGroups.Add(filterGroup); var filterRecord = new FilterRecord { Category = "Content", Type = "ContentTypes", Position = filterGroup.Filters.Count, State = GetContentTypeFilterState(entityType) }; filterGroup.Filters.Add(filterRecord); _contentManager.Create(queryPart); return queryPart.Id; }
private ProjectionPart CreateProjection(string typeName, IEnumerable<string> properties) { var projectionItem = _contentManager.New("ProjectionPage"); var queryItem = _contentManager.New("Query"); var projectionPart = projectionItem.As<ProjectionPart>(); var queryPart = queryItem.As<QueryPart>(); _contentManager.Create(queryItem); projectionPart.Record.QueryPartRecord = queryPart.Record; _contentManager.Create(projectionItem); var layoutRecord = new LayoutRecord {Category = "Html", Type = "ngGrid"}; queryPart.Record.Layouts.Add(layoutRecord); projectionPart.Record.LayoutRecord = layoutRecord; var filterGroup = new FilterGroupRecord(); queryPart.Record.FilterGroups.Clear(); queryPart.Record.FilterGroups.Add(filterGroup); var filterRecord = new FilterRecord { Category = "Content", Type = "ContentTypes", Position = filterGroup.Filters.Count, State = string.Format("<Form><ContentTypes>{0}</ContentTypes></Form>", typeName) }; filterGroup.Filters.Add(filterRecord); UpdateLayoutProperties(typeName, layoutRecord, properties); return projectionPart; }
public int EditPost(int id, ProjectionEditViewModel viewModel, IEnumerable<string> pickedFileds) { ListViewPart listViewPart; ProjectionPart projectionPart; QueryPart queryPart; if (id == 0) { listViewPart = _contentManager.New<ListViewPart>("ListViewPage"); listViewPart.ItemContentType = viewModel.ItemContentType; queryPart = _contentManager.New<QueryPart>("Query"); var layout = new LayoutRecord { Category = "Html", Type = "ngGrid", Description = "DefaultLayoutFor" + queryPart.Name, Display = 1 }; queryPart.Layouts.Add(layout); projectionPart = listViewPart.As<ProjectionPart>(); projectionPart.Record.LayoutRecord = layout; projectionPart.Record.QueryPartRecord = queryPart.Record; var filterGroup = new FilterGroupRecord(); queryPart.Record.FilterGroups.Add(filterGroup); var filterRecord = new FilterRecord { Category = "Content", Type = "ContentTypes", Position = filterGroup.Filters.Count, State = GetContentTypeFilterState(viewModel.ItemContentType) }; filterGroup.Filters.Add(filterRecord); _contentManager.Create(queryPart.ContentItem); _contentManager.Create(projectionPart.ContentItem); } else { listViewPart = _contentManager.Get<ListViewPart>(id, VersionOptions.Latest); projectionPart = listViewPart.As<ProjectionPart>(); var queryId = projectionPart.Record.QueryPartRecord.Id; queryPart = _contentManager.Get<QueryPart>(queryId, VersionOptions.Latest); } if (pickedFileds == null) { pickedFileds = new List<string>(); } listViewPart.VisableTo = viewModel.VisableTo; listViewPart.As<TitlePart>().Title = viewModel.DisplayName; listViewPart.IsDefault = viewModel.IsDefault; queryPart.Name = "Query for Public View"; projectionPart.Record.ItemsPerPage = viewModel.PageRowCount; //Post Selected Fields var layoutRecord = projectionPart.Record.LayoutRecord; layoutRecord.Properties.Clear(); var category = viewModel.ItemContentType + "ContentFields"; const string settingName = "CoeveryTextFieldSettings.IsDispalyField"; try { UpdateLayoutProperties(viewModel.ItemContentType, ref layoutRecord, category, settingName, pickedFileds); } catch (Exception exception) { Services.Notifier.Add(NotifyType.Error,T(exception.Message)); } layoutRecord.State = GetLayoutState(queryPart.Id, layoutRecord.Properties.Count, layoutRecord.Description); // sort queryPart.SortCriteria.Clear(); if (!string.IsNullOrEmpty(viewModel.SortedBy)) { var sortCriterionRecord = new SortCriterionRecord { Category = category, Type = viewModel.SortedBy, Position = queryPart.SortCriteria.Count, State = GetSortState(viewModel.SortedBy, viewModel.SortMode), Description = viewModel.SortedBy + " " + viewModel.SortMode }; queryPart.SortCriteria.Add(sortCriterionRecord); } return listViewPart.Id; }