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 FilterRecord CreateFilter(string category, string type, string state, FilterGroupRecord filterGroup) { FilterRecord filterRecord = new FilterRecord(); filterRecord.FilterGroupRecord = filterGroup; filterRecord.Category = category; filterRecord.Type = type; filterRecord.State = state; this.filterRepository.Create(filterRecord); return(filterRecord); }
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); }
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)); }
public QueryPart CreateProjectActivityStreamQuery() { var query = this.GetQuery(QueryNames.ProjectActivityStreamQueryName); if (query != null) { return(query.As <QueryPart>()); } query = this.contentManager.Create("Query"); query.As <TitlePart>().Title = QueryNames.ProjectActivityStreamQueryName; this.contentManager.Publish(query); QueryPart queryPart = query.As <QueryPart>(); var attachToProjectFilterGroup = queryPart.Record.FilterGroups.FirstOrDefault(); // AttachToProject string state = string.Format(CultureInfo.InvariantCulture, "<Form><Description></Description><Project_Id>{0}</Project_Id></Form>", "{AttachToProject.ProjectId}"); FilterRecord attachToProjectFilterRecord = this.CreateFilter(AttachToProjectFilter.CategoryName, AttachToProjectFilter.IdFilterType, state, attachToProjectFilterGroup); this.filterRepository.Flush(); var projectFilterGroup = new FilterGroupRecord { QueryPartRecord = queryPart.Record }; queryPart.Record.FilterGroups.Add(projectFilterGroup); this.filterGroupRepository.Create(projectFilterGroup); // project ContentType filter this.CreateContentTypeFilter(ContentTypes.ProjectContentType, projectFilterGroup); state = string.Format(CultureInfo.InvariantCulture, "<Form><Description></Description><Project_Id>{0}</Project_Id></Form>", "{Project.ProjectId}"); this.CreateFilter(ProjectFilter.CategoryName, ProjectFilter.IdFilterType, state, projectFilterGroup); this.filterGroupRepository.Flush(); this.filterRepository.Flush(); return(queryPart); }
public int Count() { IHqlQuery hqlQuery = HqlQuery(); //hqlQuery.Where(x => x.Named("a"), y => y.Eq("UserName", "admin")); QueryRecord record = new QueryRecord(); FilterGroupRecord group = new FilterGroupRecord(); var state = new { Description = "test", Operator = "Equals", Value = "phoenix" }; group.Filters.Add(new FilterRecord() { Category = "UserEntity", PropertyName = "UserName", State = JsonConvert.SerializeObject(state) }); record.FilterGroups.Add(group); _hqlQueryManager.GetQuery(hqlQuery, record); return(hqlQuery.Count()); }
protected FilterRecord CreateContentTypeFilter(string contnetType, FilterGroupRecord filterGroup) { string state = string.Format(CultureInfo.InvariantCulture, "<Form><Description></Description><ContentTypes>{0}</ContentTypes></Form>", contnetType); return(this.CreateFilter("Content", "ContentTypes", state, filterGroup)); }
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); }