public static string GetUrlForSearch(SavedUserAssetSearch searchInfo)
        {
            AssetFinder finder = searchInfo.AssetFinder;

            StringBuilder sb = new StringBuilder();

            sb.Append("~/SearchRedirector.ashx?x=1");

            AppendSearchValue(sb, CATEGORY_ID, searchInfo.CurrentCategoryId);
            AppendSearchValue(sb, GENERAL_KEYWORD, finder.GeneralKeyword.Replace("&", " "));

            foreach (var ids in finder.MetadataIds)
            {//add all selected meta value ids for each meta under its
                //own param name
                foreach (var id in ids.Value)
                {
                    AppendSearchValue(sb, "md" + ids.Key, id);
                }
            }

            AppendSearchValue(sb, BRAND_ID, finder.BrandId);
            AppendSearchValue(sb, ASSET_TYPE_ID, finder.AssetTypeId);
            AppendSearchValue(sb, ORIENTATION_ID, m_OrientationDictionary[finder.Orientation]);

            ComplexCriteria criteria = finder.GetSingleComplexCriteria(Asset.Columns.FileSize);

            if (criteria != null)
            {
                sb.AppendFormat("&{0}={1}&{2}={3}", FILESIZE_COMPARETYPE, m_CompareTypeDictionary[criteria.CompareType], FILESIZE, criteria.Value);
            }

            criteria = finder.GetSingleComplexCriteria(Asset.Columns.ProductionMonth, CompareType.MoreThan);
            if (criteria != null)
            {
                sb.AppendFormat("&{0}={1}", FROM_PRODUCTION_MONTH, criteria.Value);
            }

            criteria = finder.GetSingleComplexCriteria(Asset.Columns.ProductionYear, CompareType.MoreThan);
            if (criteria != null)
            {
                sb.AppendFormat("&{0}={1}", FROM_PRODUCTION_YEAR, criteria.Value);
            }

            criteria = finder.GetSingleComplexCriteria(Asset.Columns.ProductionMonth, CompareType.LessThan);
            if (criteria != null)
            {
                sb.AppendFormat("&{0}={1}", TO_PRODUCTION_MONTH, criteria.Value);
            }

            criteria = finder.GetSingleComplexCriteria(Asset.Columns.ProductionYear, CompareType.LessThan);
            if (criteria != null)
            {
                sb.AppendFormat("&{0}={1}", TO_PRODUCTION_YEAR, criteria.Value);
            }

            sb.AppendFormat("&{0}={1}", PAGE, searchInfo.Page);
            sb.AppendFormat("&{0}={1}", PAGE_SIZE, searchInfo.PageSize);

            return(sb.ToString());
        }
 public void Reset()
 {
     SavedUserAssetSearch       = new SavedUserAssetSearch();
     PersistentLightboxCartInfo = new PersistentLightboxCartInfo();
     LightboxPageSize           = 0;
     CartPageSize            = 0;
     DownloadManagerPageSize = 0;
 }
        public static void SetupSearchFromRequest(NameValueCollection request, SavedUserAssetSearch searchInfo)
        {
            if (request[CATEGORY_ID] != null)
            {
                int      categoryId = NumericUtils.ParseInt32(request[CATEGORY_ID], 0);
                Category category   = CategoryCache.Instance.GetById(categoryId);

                if (CurrentUser.CanAccessBrand(category.BrandId))
                {
                    searchInfo.SelectCategory(categoryId);
                }
            }

            if (request[GENERAL_KEYWORD] != null)
            {
                searchInfo.AssetFinder.GeneralKeyword = HttpUtility.UrlDecode(request[GENERAL_KEYWORD]);
            }

            for (int i = 1; i <= Settings.NumberOfMetadataFields; i++)
            {
                string key = "md" + i;

                if (request[key] != null)
                {
                    var metadataIds = NumericUtils.ParseIntList(request[key], ",");

                    if (metadataIds.Count == 0)
                    {
                        return;
                    }

                    foreach (var mId in metadataIds)
                    {
                        Metadata metadata = MetadataCache.Instance.GetById(mId);
                        if (metadata.IsNull)
                        {
                            return;
                        }

                        if (CurrentUser.CanAccessBrand(metadata.BrandId.GetValueOrDefault()))
                        {
                            if (!searchInfo.AssetFinder.MetadataIds.ContainsKey(i))
                            {
                                searchInfo.AssetFinder.MetadataIds.Add(i, new List <int>());
                            }

                            searchInfo.AssetFinder.MetadataIds[i].Add(mId);
                        }
                    }
                }
            }

            if (request[BRAND_ID] != null)
            {
                int brandId = NumericUtils.ParseInt32(request[BRAND_ID], 0);

                if (CurrentUser.CanAccessBrand(brandId))
                {
                    searchInfo.AssetFinder.BrandId = brandId;
                }
            }

            if (request[ASSET_TYPE_ID] != null)
            {
                searchInfo.AssetFinder.AssetTypeId = NumericUtils.ParseInt32(request[ASSET_TYPE_ID], 0);
            }

            if (request[ORIENTATION_ID] != null)
            {
                searchInfo.AssetFinder.Orientation = GetOrientation(request[ORIENTATION_ID]);
            }

            if (request[FILESIZE_COMPARETYPE] != null && request[FILESIZE] != null)
            {
                CompareType compareType = GetCompareType(request[FILESIZE_COMPARETYPE]);
                searchInfo.AssetFinder.AddComplexCriteria(Asset.Columns.FileSize, Decimal.Parse(request[FILESIZE]), compareType);
            }

            if (request[FROM_PRODUCTION_MONTH] != null)
            {
                searchInfo.AssetFinder.AddComplexCriteria(Asset.Columns.ProductionMonth, request[FROM_PRODUCTION_MONTH], CompareType.MoreThan);
            }

            if (request[FROM_PRODUCTION_YEAR] != null)
            {
                searchInfo.AssetFinder.AddComplexCriteria(Asset.Columns.ProductionYear, request[FROM_PRODUCTION_YEAR], CompareType.MoreThan);
            }

            if (request[TO_PRODUCTION_MONTH] != null)
            {
                searchInfo.AssetFinder.AddComplexCriteria(Asset.Columns.ProductionMonth, request[TO_PRODUCTION_MONTH], CompareType.LessThan);
            }

            if (request[TO_PRODUCTION_YEAR] != null)
            {
                searchInfo.AssetFinder.AddComplexCriteria(Asset.Columns.ProductionYear, request[TO_PRODUCTION_YEAR], CompareType.LessThan);
            }

            if (request[PAGE] != null)
            {
                searchInfo.Page = NumericUtils.ParseInt32(request[PAGE], 0);
            }

            if (request[PAGE_SIZE] != null)
            {
                searchInfo.PageSize = NumericUtils.ParseInt32(request[PAGE_SIZE], 0);
            }
        }