コード例 #1
0
        public IEnumerable <FilterDescriptor> GetAllFilter(IFilterDescriptor Descriptor)
        {
            List <FilterDescriptor> filterDescriptors = new List <FilterDescriptor>();

            if (Descriptor is null)
            {
                return(filterDescriptors);
            }

            string typeName = Descriptor.GetType().Name;

            if (typeName == nameof(FilterDescriptor))
            {
                filterDescriptors.Add((FilterDescriptor)Descriptor);
            }
            else if (typeName == nameof(CompositeFilterDescriptor))
            {
                foreach (var item in ((CompositeFilterDescriptor)Descriptor).FilterDescriptors)
                {
                    typeName = item.GetType().Name;

                    if (typeName == nameof(FilterDescriptor))
                    {
                        filterDescriptors.Add((FilterDescriptor)item);
                    }
                    else if (typeName == nameof(CompositeFilterDescriptor))
                    {
                        filterDescriptors.AddRange(GetAllFilter((CompositeFilterDescriptor)item));
                    }
                }
            }

            return(filterDescriptors);
        }
コード例 #2
0
        private static void MappViewFields(IFilterDescriptor f, string current, string toMap)
        {
            var type = f.GetType();

            if (type.Name != "FilterDescriptor")
            {
                CompositeFilterDescriptor cfd = (CompositeFilterDescriptor)f;

                foreach (var item in cfd.FilterDescriptors)
                {
                    MappViewFields(item, current, toMap);
                }
            }
            else
            {
                FilterDescriptor fd = (FilterDescriptor)f;
                if (fd.Member == current)
                {
                    fd.Member = toMap;
                }
                if (fd.Member.ToLower().Contains("date"))
                {
                    fd.Value = ((DateTime)fd.Value).ToUniversalTime();
                }
            }
        }
コード例 #3
0
ファイル: KendoAnalyser.cs プロジェクト: AmiraSh/BookCatalog
        /// <summary>
        /// Gets filters list.
        /// </summary>
        /// <param name="filterDescriptor">Filter's descriptor.</param>
        /// <returns>Filters list.</returns>
        private static List<FilterDescriptor> GetDescriptors(IFilterDescriptor filterDescriptor)
        {
            var descriptors = new List<FilterDescriptor>();
            if (filterDescriptor.GetType() == typeof(FilterDescriptor))
            {
                descriptors.Add(filterDescriptor as FilterDescriptor);
            }
            else
            {
                foreach (IFilterDescriptor filter in (filterDescriptor as CompositeFilterDescriptor).FilterDescriptors)
                {
                    descriptors.AddRange(GetDescriptors(filter));
                }
            }

            return descriptors;
        }