Esempio n. 1
0
        protected string GetRankByValue(RankBy rankBy)
        {
            switch (rankBy)
            {
            case RankBy.Distance:
                return("distance");

            default:
                return("prominence");
            }
        }
Esempio n. 2
0
        // ================================================
        // INNER METHODS
        // ================================================
        string RankByToString(RankBy rankBy)
        {
            switch (rankBy)
            {
            case RankBy.Distance:
                return("distance");

            case RankBy.Prominence:
                return("prominence");

            default:
                return("prominence");
            }
        }
        internal override Uri ToUri()
        {
            ValidateRequest();

            var qsb = new Internal.QueryStringBuilder();

            qsb.Append("location", Location.GetAsUrlParameter())
            .Append("sensor", (Sensor.Value.ToString().ToLowerInvariant()));

            if (RankBy.GetValueOrDefault(Maps.RankBy.Prominence) != Maps.RankBy.Distance)
            {
                // Note that radius must not be included if rankby=distance
                qsb.Append("radius", Radius.ToString());
            }
            else
            {
                qsb.Append("rankby", RankBy.Value.ToString().ToLowerInvariant());
            }

            if (!string.IsNullOrEmpty(Keyword))
            {
                qsb.Append("keyword", Keyword.ToString().ToLowerInvariant());
            }

            if (!string.IsNullOrEmpty(Name))
            {
                qsb.Append("name", Name.ToString().ToLowerInvariant());
            }

            if ((Types != null && Types.Any()))
            {
                qsb.Append("types", TypesToUri());
            }

            if (!string.IsNullOrEmpty(Language))
            {
                qsb.Append("language", Language.ToLowerInvariant());
            }

            if (Minprice.HasValue)
            {
                qsb.Append("minprice", Minprice.Value.ToString());
            }

            if (Maxprice.HasValue)
            {
                qsb.Append("maxprice", Maxprice.Value.ToString());
            }

            if (OpenNow.HasValue)
            {
                qsb.Append("opennow", OpenNow.Value.ToString().ToLowerInvariant());
            }

            if (!string.IsNullOrEmpty(PageToken))
            {
                qsb.Append("pagetoken", PageToken);
            }

            if (ZagatSelected)
            {
                qsb.Append("zagatselected");
            }

            var url = "nearbysearch/json?" + qsb.ToString();

            return(new Uri(url, UriKind.Relative));
        }
Esempio n. 4
0
        public static IEnumerable <RankingDataTransfer> GetRankingData(this IEnumerable <Author> authors, RankBy by)
        {
            ICollection <RankingDataTransfer> rankingData = new List <RankingDataTransfer>();

            if (by == RankBy.Score)
            {
                authors.ToList().ForEach(a =>
                {
                    rankingData.Add(new RankingDataTransfer
                    {
                        AuthorEmail = a.Email,
                        AuthorScore = a.Votes
                    });
                });
            }
            else if (by == RankBy.NumberOfArticles)
            {
                authors.ToList().ForEach(a =>
                {
                    rankingData.Add(new RankingDataTransfer
                    {
                        AuthorEmail            = a.Email,
                        AuthorNumberOfArticles = a.Article.Count
                    });
                });
            }

            return(rankingData);
        }
        public async Task <SearchData> GetPlacesByNearbySearch(double latitude, double longitude, int?radius = null, string keyword = null, string name = null, RankBy rankBy = RankBy.Undefined, PlaceType placeType = PlaceType.Undefined, Language language = Language.Undefined, PriceLevel minPriceLevel = PriceLevel.Undefined, PriceLevel maxPriceLevel = PriceLevel.Undefined, bool?openNow = null, string pageToken = null, string region = null)
        {
            var request = new RestRequest("nearbysearch/json", Method.GET);

            request.AddParameter("location", $"{latitude},{longitude}");

            if (!string.IsNullOrEmpty(keyword))
            {
                request.AddParameter("keyword", keyword);
            }

            if (!string.IsNullOrEmpty(name))
            {
                request.AddParameter("name", name);
            }

            if (rankBy != RankBy.Undefined)
            {
                request.AddParameter("rankby", GetRankByValue(rankBy));
            }

            if (radius.HasValue)
            {
                request.AddParameter("radius", radius.Value);
            }

            if (language != Language.Undefined)
            {
                request.AddParameter("language", GetLanguageCode(language));
            }

            if (minPriceLevel != PriceLevel.Undefined)
            {
                request.AddParameter("minprice", (int)minPriceLevel);
            }

            if (maxPriceLevel != PriceLevel.Undefined)
            {
                request.AddParameter("maxprice", (int)maxPriceLevel);
            }

            if (openNow.HasValue)
            {
                request.AddParameter("opennow", openNow.Value.ToString().ToLower());
            }

            if (placeType != PlaceType.Undefined)
            {
                request.AddParameter("type", GetPlaceType(placeType));
            }

            if (!string.IsNullOrEmpty(pageToken))
            {
                request.AddParameter("pagetoken", pageToken);
            }

            if (!string.IsNullOrEmpty(region))
            {
                request.AddParameter("region", region);
            }

            return(await base.Execute <SearchData>(request));
        }