public async Task UploadAsync()
        {
            FiltersResult FilterRes = new FiltersResult();

            rc = new RulesCreator(_reqEx);
            string trigger = null;
            string filters = null;
            string fields;
            string operators;
            string values;
            bool   working;
            var    result = rc.CreateMainCondition("Результаты", "3", ">", null, 1);

            trigger = result.Item1;
            filters = result.Item2;

            try
            {
                await rc.UploadAsync(_acc, trigger, "test", "ADSET", filters, FilterRes.Names.FirstOrDefault(x => x.Value == "Сегодня").Key);

                working = true;
            }
            catch (Exception ex)
            {
                working = false;
            }



            Assert.IsTrue(working);
        }
예제 #2
0
        internal static FiltersResult GetTagFilters(string searcherName, string tagGroup, string tagName)
        {
            var filtersResult = new FiltersResult();

            var lookQuery = new LookQuery(searcherName)
            {
                TagQuery = new TagQuery()
            };

            if (!string.IsNullOrWhiteSpace(tagGroup) && string.IsNullOrWhiteSpace(tagName)) // only have the group to query
            {
                //use raw query looking for newly indexed field(in look 0.33.0)
                // TODO: update look to handle tags like "colour:*"
                lookQuery.RawQuery = "Look_TagGroup_" + tagGroup + ":1";
            }
            else if (!string.IsNullOrWhiteSpace(tagName)) // we have a specifc tag
            {
                lookQuery.TagQuery.Has = new LookTag(tagGroup, tagName);
            }

            filtersResult.Aliases = lookQuery
                                    .Search()
                                    .Matches
                                    .Select(x => x.Alias)
                                    .Distinct()
                                    .OrderBy(x => x)
                                    .ToArray();

            return(filtersResult);
        }
예제 #3
0
        internal static FiltersResult GetLocationFilters(string searcherName)
        {
            var filtersResult = new FiltersResult();

            filtersResult.Aliases = new LookQuery(searcherName)
            {
                LocationQuery = new LocationQuery()
            }
            .Search()
            .Matches
            .Select(x => x.Alias)
            .Distinct()
            .OrderBy(x => x)
            .ToArray();

            return(filtersResult);
        }
예제 #4
0
        internal static FiltersResult GetFilters(string searcherName)
        {
            var filtersResult = new FiltersResult();

            // TODO: extend Look to have a public NodeFacetQuery (this will facet on culture, alias and type, returning counts for each) ?

            filtersResult.Aliases = new LookQuery(searcherName)
            {
                NodeQuery = new NodeQuery()
            }
            .Search()
            .Matches
            .Select(x => x.Alias)
            .Distinct()
            .OrderBy(x => x)
            .ToArray();

            return(filtersResult);
        }
예제 #5
0
        internal static FiltersResult GetDetachedFilters(string searcherName, PublishedItemType nodeType)
        {
            var filtersResult = new FiltersResult();

            filtersResult.Aliases = new LookQuery(searcherName)
            {
                NodeQuery = new NodeQuery()
                {
                    Type = nodeType, DetachedQuery = DetachedQuery.OnlyDetached
                }
            }
            .Search()
            .Matches
            .Select(x => x.Alias)
            .Distinct()
            .OrderBy(x => x)
            .ToArray();

            return(filtersResult);
        }
        public FiltersResult Filters([FromUri] FiltersParam param)
        {
            if (param == null)
            {
                throw new ArgumentNullException("param");
            }
            WebPartner partner = UserToolsProvider.GetPartner(param);

            if (!(param.StartPoint.HasValue || (param.StartPointAlias == null)))
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            object[] args = new object[5];
            args[0] = param.Language;
            args[1] = partner.id;
            args[2] = param.StartPoint.HasValue ? param.StartPoint.ToString() : "-";
            int?destinationState = param.DestinationState;

            args[3] = destinationState.HasValue ? (destinationState = param.DestinationState).ToString() : "-";
            args[4] = param.WithoutPrice;
            string        key    = string.Format("cache_filterResult[ln:{0}][p:{1}][sp:{2}][st:{3}][wp:{4}]", args);
            FiltersResult result = HttpContext.Current.Cache[key] as FiltersResult;

            if ((result == null) || Settings.IsCacheDisabled)
            {
                result = new FiltersResult();
                DateTime?startDate   = null;
                TimeSpan?minDuration = null;
                List <CatalogExcursionMinPrice> catalog = ExcursionProvider.FindExcursions(param.Language, partner.id, startDate, null, null, param.StartPoint, null, null, null, param.DestinationState.HasValue ? new int[] { param.DestinationState.Value } : null, null, minDuration, null, null, param.WithoutPrice);
                result.categorygroups = ExcursionProvider.BuildFilterCategories(catalog, null);
                result.destinations   = ExcursionProvider.BuildFilterDestinations(catalog, null);
                result.languages      = ExcursionProvider.BuildFilterLanguages(catalog, null);
                result.durations      = ExcursionProvider.BuildFilterDurations(catalog);
                HttpContext.Current.Cache.Add(key, result, null, DateTime.Now.AddMinutes(10.0), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
            }
            return(result);
        }