public void Describe(DescribeSortCriterionContext describe) { var builder = new BindingBuilder(); foreach (var bindingProvider in _bindingProviders) { bindingProvider.GetMemberBindings(builder); } var groupedMembers = builder.Build().GroupBy(b => b.Property.DeclaringType).ToDictionary(b => b.Key, b => b); foreach (var typeMembers in groupedMembers.Keys) { var descriptor = describe.For(typeMembers.Name, new LocalizedString(typeMembers.Name.CamelFriendly()), T("Members for {0}", typeMembers.Name)); foreach (var member in groupedMembers[typeMembers]) { var closureMember = member; descriptor.Element(member.Property.Name, member.DisplayName, member.Description, context => ApplyFilter(context, closureMember.Property), context => DisplaySortCriterion(context, closureMember.DisplayName.Text), SortCriterionFormProvider.FormName ); } } }
public void Describe(DescribeSortCriterionContext describe) { describe.For("General", T("General"), T("General sort criteria")) .Element("Random", T("Random"), T("Sorts the results randomly."), context => context.Query.OrderBy(alias => alias.ContentItem(), order => order.Random()), context => T("Random order") ); }
public void Describe(DescribeSortCriterionContext describe) { var descriptor = describe.For("Ticket", T("Ticket Fields"), T("Ticket Fields")); // Status descriptor.Element( type: TicketPart.StatusFieldName, name: new LocalizedString("Status"), description: T("Sort by status"), display: context => Display(context, TicketPart.StatusFieldName), sort: context => ApplyStatusFilter(context, "StatusRecord", "OrderId"), form: SortCriterionFormProvider.FormName); // Priority descriptor.Element( type: TicketPart.PriorityFieldName, name: new LocalizedString("Priority"), description: T("Sort by Priority"), display: context => Display(context, TicketPart.PriorityFieldName), sort: context => ApplyStatusFilter(context, "PriorityRecord", "OrderId"), form: SortCriterionFormProvider.FormName); // Service descriptor.Element( type: TicketPart.ServiceFieldName, name: new LocalizedString("Service"), description: T("Sort by Service"), display: context => Display(context, TicketPart.ServiceFieldName), sort: context => ApplyStatusFilter(context, "Service", "Name"), form: SortCriterionFormProvider.FormName); // Identity descriptor.Element( type: TicketPart.IdentityFieldName, name: new LocalizedString("Identity"), description: T("Sort by Identity"), display: context => Display(context, TicketPart.IdentityFieldName), sort: context => ApplyStatusFilter(context, "Identity", "Id"), form: SortCriterionFormProvider.FormName); // Title descriptor.Element( type: TicketPart.TitleFieldName, name: new LocalizedString("Title"), description: T("Sort by Title"), display: context => Display(context, TicketPart.TitleFieldName), sort: context => ApplyStatusFilter(context, string.Empty, "Title"), form: SortCriterionFormProvider.FormName); // DueDate descriptor.Element( type: TicketPart.DueDateFieldName, name: new LocalizedString("DueDate"), description: T("Sort by DueDate"), display: context => Display(context, TicketPart.DueDateFieldName), sort: context => ApplyStatusFilter(context, string.Empty, "DueDate"), form: SortCriterionFormProvider.FormName); }
public void Describe(DescribeSortCriterionContext describe) { describe.For("Reactions", T("Reactions"), T("Reactions")) .Element("Reaction", T("Reaction on content"), T("Reaction on content"), ApplySort, DisplaySort, "ReactionsSortForm" ); }
public void Describe(DescribeSortCriterionContext describe) { describe.For("ActivityPart", T("Activity Part Record"), T("Position in the list of activities")) .Element("DateTimeStart", T("Activity Start Date"), T("Starting date of the event"), context => ApplyFilter(context), context => DisplaySortCriterion(context), SortCriterionFormProvider.FormName ); }
public IEnumerable <TypeDescriptor <SortCriterionDescriptor> > DescribeSortCriteria() { var context = new DescribeSortCriterionContext(); foreach (var provider in _sortCriterionProviders) { provider.Describe(context); } return(context.Describe()); }
public void Describe(DescribeSortCriterionContext describe) { describe.For("General", T("General"), T("General sort criteria")) .Element("ConfigurableSorting", T("Configurable Sort Criteria"), T("Sorts the results by choosing the criterion from a list"), context => ApplyFilter(context), context => T("Order based off a variable configuration"), ConfigurableSortCriterionProviderForm.FormName); }
public void Describe(DescribeSortCriterionContext describe) { foreach (var part in _contentDefinitionManager.ListUserDefinedPartDefinitions()) { if (!part.Fields.Any()) { continue; } var descriptor = describe.For(part.Name + "ContentFields", T("{0} Content Fields", part.Name.CamelFriendly()), T("Content Fields for {0}", part.Name.CamelFriendly())); foreach (var field in part.Fields) { var localField = field; var localPart = part; var drivers = _contentFieldDrivers.Where(x => x.GetFieldInfo().Any(fi => fi.FieldTypeName == localField.FieldDefinition.Name)).ToList(); var membersContext = new DescribeMembersContext( (storageName, storageType, displayName, description) => { // look for a compatible field type editor IConcreteFieldTypeEditor fieldTypeEditor = _fieldTypeEditors.FirstOrDefault(x => x.CanHandle(localField.FieldDefinition.Name, storageType)) ?? _fieldTypeEditors.FirstOrDefault(x => x.CanHandle(storageType)); if (fieldTypeEditor == null) { return; } descriptor.Element( type: localPart.Name + "." + localField.Name + "." + storageName ?? "", name: new LocalizedString(localField.DisplayName + (displayName != null ? ":" + displayName.Text : "")), description: description ?? T("{0} property for {1}", storageName, localField.DisplayName), sort: context => fieldTypeEditor.ApplySortCriterion(context, storageName, storageType, localPart, localField), display: context => DisplaySortCriterion(context, localPart, localField), form: SortCriterionFormProvider.FormName); }); foreach (var driver in drivers) { driver.Describe(membersContext); } } } }
public void Describe(DescribeSortCriterionContext describe) { foreach (var customSort in _customSortService.Query()) { var descriptor = describe.For("CustomSorts", T("Custom Sorts"), T("Manually-defined sort orders.")); var sortId = customSort.Id; var sortName = customSort.Name; var sortEditUrl = _url.Action("Edit", "CustomSortAdmin", new { id = sortId, area = "Vandelay.Industries" }); descriptor.Element( type: customSort.Name, name: new LocalizedString(customSort.Name), description: T("Custom sort order <a href=\"{1}\">{0}</a>", customSort.Name, sortEditUrl), sort: context => ApplySortCriterion(context, sortId, sortName), display: context => DisplaySortCriterion(context, sortName)); } }
public void Describe(DescribeSortCriterionContext describe) { var descriptor = describe.For("Milestone", T("Milestone Fields"), T("Milestone Fields")); // StartTime descriptor.Element( type: MilestonePart.StartTimeFieldName, name: new LocalizedString("StartDate"), description: T("Sort by Milestone StartTime"), display: context => Display(context, "Milestone Start Time"), sort: context => ApplySortCriteria(context, MilestonePart.StartTimeFieldName), form: SortCriterionFormProvider.FormName); // EndTime descriptor.Element( type: MilestonePart.EndTimeFieldName, name: new LocalizedString("EndTime"), description: T("Sort by Milestone EndTime"), display: context => Display(context, "Milestone End Time"), sort: context => ApplySortCriteria(context, MilestonePart.EndTimeFieldName), form: SortCriterionFormProvider.FormName); }