/// <summary> /// Get dictionary, containing column name as a key and value for filtering as a value. /// </summary> /// <param name="hierarchyDataFilters"><see cref="Dictionary<string, object>"/>filters</param> /// <param name="filtersGroup"><see cref="HierarchyDataStructureFilterGroup"/>Group for hierarchy data structure filters.</param> /// <param name="logicalOperationStrict"><see cref="LogicalOperationStrict"/>Logical operation.</param> /// <returns><see cref="EntityCollectionMappingHandlerFilterGroup"/>.</returns> protected virtual EntityCollectionMappingHandlerFilterGroup GetFilterGroup(Dictionary <string, object> hierarchyDataFilters, HierarchyDataStructureFilterGroup filtersGroup, LogicalOperationStrict logicalOperationStrict = LogicalOperationStrict.And) { List <EntityCollectionMappingHandlerFilter> filters = GetEntityCollectionMappingHandlerFilter(hierarchyDataFilters); var hierarchyDataStructureFilters = GetEntityCollectionMappingHandlerFilter(filtersGroup); if (hierarchyDataStructureFilters != null && hierarchyDataStructureFilters.Any()) { filters.AddRange(hierarchyDataStructureFilters); } LogicalOperationStrict logicalOperation = filtersGroup != null ? filtersGroup.LogicalOperation : logicalOperationStrict; return(new EntityCollectionMappingHandlerFilterGroup(filters, logicalOperation)); }
/// <summary> /// Get filters collection. /// </summary> /// <param name="filters"><see cref="HierarchyDataStructureFilterGroup"/>Dictionary consisting of values entity column and value.</param> /// <returns><see cref="List<EntityCollectionMappingHandlerFilter>"/>Filters collection.</returns> private List <EntityCollectionMappingHandlerFilter> GetEntityCollectionMappingHandlerFilter(HierarchyDataStructureFilterGroup hierarchyDataStructureFilters) { List <EntityCollectionMappingHandlerFilter> mappingHandlerFilters = new List <EntityCollectionMappingHandlerFilter>(); if (hierarchyDataStructureFilters == null || hierarchyDataStructureFilters.Filters.IsNullOrEmpty()) { return(mappingHandlerFilters); } foreach (var filter in hierarchyDataStructureFilters.Filters) { mappingHandlerFilters.Add(new EntityCollectionMappingHandlerFilter( filter.ColumnPath, new List <object>(filter.Values), filter.ComparisonType, filter.LogicalOperation)); } return(mappingHandlerFilters); }