Advertisement
Guest User

Untitled

a guest
Aug 25th, 2016
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.33 KB | None | 0 0
  1.     public static class DataSourceRequestExtensions
  2.     {
  3.         /// <summary>
  4.         /// Enable flattened properties in the ViewModel to be used in DataSource.
  5.         /// </summary>
  6.         public static void Deflatten(this DataSourceRequest dataSourceRequest)
  7.         {
  8.             foreach (var filter in dataSourceRequest.Filters)
  9.             {
  10.                 Deflatten(filter);
  11.             }
  12.  
  13.             foreach (var sortDescriptor in dataSourceRequest.Sorts)
  14.             {
  15.                 sortDescriptor.Member = DeflattenString(sortDescriptor.Member);
  16.             }
  17.         }
  18.  
  19.         private static void Deflatten(IFilterDescriptor filter)
  20.         {
  21.             FilterDescriptor filterDescriptor;
  22.             CompositeFilterDescriptor compositeFilterDescriptor;
  23.  
  24.             if ((filterDescriptor = filter as FilterDescriptor) != null)
  25.                 filterDescriptor.Member = DeflattenString(filterDescriptor.Member);
  26.             else if ((compositeFilterDescriptor = filter as CompositeFilterDescriptor) != null)
  27.             {
  28.                 foreach(var childFilter in compositeFilterDescriptor.FilterDescriptors)
  29.                     Deflatten(childFilter);
  30.             }
  31.         }
  32.  
  33.         private static string DeflattenString(string source)
  34.         {
  35.             return source.Replace('_', '.');
  36.         }
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement