/// <summary> /// To the filter descriptor. /// </summary> /// <param name="filter">The filter.</param> /// <param name="filterGuid">The filter unique identifier.</param> /// <returns>Veyron.SharedTypes.IFilterDescriptor.</returns> public static Veyron.SharedTypes.IFilterDescriptor ToFilterDescriptor(this CompositeFilterDescriptorCollection filter, Guid filterGuid) { Veyron.SharedTypes.IFilterDescriptor result = null; if (filter != null && filter.Count > 1) { var descriptors = new MobileObservableCollection<Veyron.SharedTypes.IFilterDescriptor>(); foreach (var descriptor in filter.Select(subfilter => ToFilterDescriptor((IFilterDescriptor)subfilter))) descriptors.Add(descriptor); result = new Veyron.SharedTypes.FilterDescriptor(filter.LogicalOperator.ToLogicalOperator(), descriptors); result.FilterGuid = filterGuid == Guid.Empty ? Guid.NewGuid() : filterGuid; } else { if (filter != null && filter.Count == 1) { result = filter[0].ToFilterDescriptor(); result.FilterGuid = filterGuid == Guid.Empty ? Guid.NewGuid() : filterGuid; } } return result; }
/// <summary> /// To the filter descriptor. /// </summary> /// <param name="filter">The filter.</param> /// <returns>Veyron.SharedTypes.IFilterDescriptor.</returns> public static Veyron.SharedTypes.IFilterDescriptor ToFilterDescriptor(this CompositeFilterDescriptorCollection filter) { Veyron.SharedTypes.IFilterDescriptor result = null; if (filter != null && filter.Count > 1) { var descriptors = new MobileObservableCollection<Veyron.SharedTypes.IFilterDescriptor>(); foreach (var descriptor in filter.Select(ToFilterDescriptor)) descriptors.Add(descriptor); result = new Veyron.SharedTypes.FilterDescriptor(filter.LogicalOperator.ToLogicalOperator(), descriptors); } else { if (filter != null && filter.Count == 1) result = filter[0].ToFilterDescriptor(); } return result; }