Beispiel #1
0
 public CollectionView(
     FilteringOverview usedFilter,
     int totalExisting,
     IEnumerable <IApiResource> viewModels)
 {
     this.UsedFilter    = usedFilter;
     this.TotalExisting = totalExisting;
     this.ViewModels    = viewModels;
 }
Beispiel #2
0
        protected string GetCollectionLink(FilteringOverview filter)
        {
            var urlBuilder = new UrlBuilder <ICollectionFilter>(this.CurrentBaseUrlPath);

            if (filter.Page.IsModified)
            {
                string paramKey   = filter.Page.Name.ToLower();
                string paramValue = filter.Page.UrlFriendlyValueTransformerDefault(filter.Page.Values.First());

                urlBuilder.AddParam(paramKey, paramValue);
            }

            if (filter.PageSize.IsModified)
            {
                string paramKey   = filter.PageSize.Name.ToLower();
                string paramValue = filter.PageSize.UrlFriendlyValueTransformerDefault(filter.PageSize.Values.First());

                urlBuilder.AddParam(paramKey, paramValue);
            }

            foreach (var additionalCriteria in filter.AdditionalCriterias)
            {
                if (additionalCriteria.IsModified)
                {
                    string paramKey = additionalCriteria.Name.ToLower();

                    foreach (var value in additionalCriteria.Values)
                    {
                        string paramValue = additionalCriteria.UrlFriendlyValueTransformer(value);
                        urlBuilder.AddParam(paramKey, paramValue);
                    }
                }
            }

            string url = urlBuilder.Build();

            return(url);
        }
Beispiel #3
0
        public Dictionary <string, object> GetCollectionFilteringMap(FilteringOverview filter)
        {
            var allFiltersUsed = new Dictionary <string, object>();

            object pageValue =
                filter.Page.HasMultipleValues
                ? (object)filter.Page.Values
                : filter.Page.Values.First();

            allFiltersUsed.Add(filter.Page.Name, pageValue);

            object pageSizeValue =
                filter.PageSize.HasMultipleValues
                ? (object)filter.PageSize.Values
                : filter.PageSize.Values.First();

            allFiltersUsed.Add(filter.PageSize.Name, pageSizeValue);

            foreach (var extraCriteria in filter.AdditionalCriterias)
            {
                object extraCriteriaValue =
                    extraCriteria.HasMultipleValues
                    ? (object)extraCriteria.Values
                    : extraCriteria.Values.First();

                if (extraCriteriaValue != null &&
                    extraCriteriaValue.GetType().IsEnum)
                {
                    extraCriteriaValue = extraCriteriaValue.ToString();
                }

                allFiltersUsed.Add(extraCriteria.Name, extraCriteriaValue);
            }

            return(allFiltersUsed);
        }