Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class DataSourceRequestExtensions
- {
- /// <summary>
- /// Enable flattened properties in the ViewModel to be used in DataSource.
- /// </summary>
- public static void Deflatten(this DataSourceRequest dataSourceRequest)
- {
- foreach (var filter in dataSourceRequest.Filters)
- {
- Deflatten(filter);
- }
- foreach (var sortDescriptor in dataSourceRequest.Sorts)
- {
- sortDescriptor.Member = DeflattenString(sortDescriptor.Member);
- }
- }
- private static void Deflatten(IFilterDescriptor filter)
- {
- FilterDescriptor filterDescriptor;
- CompositeFilterDescriptor compositeFilterDescriptor;
- if ((filterDescriptor = filter as FilterDescriptor) != null)
- filterDescriptor.Member = DeflattenString(filterDescriptor.Member);
- else if ((compositeFilterDescriptor = filter as CompositeFilterDescriptor) != null)
- {
- foreach(var childFilter in compositeFilterDescriptor.FilterDescriptors)
- Deflatten(childFilter);
- }
- }
- private static string DeflattenString(string source)
- {
- return source.Replace('_', '.');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement