예제 #1
0
        internal static IEnumerable <string> ToParameters(this RunsOrdering ordering)
        {
            var isDescending = ((int)ordering & 1) == 1;

            if (isDescending)
            {
                ordering = (RunsOrdering)((int)ordering - 1);
            }

            var str = "";

            switch (ordering)
            {
            case RunsOrdering.Category:
                str = "category"; break;

            case RunsOrdering.Level:
                str = "level"; break;

            case RunsOrdering.Platform:
                str = "platform"; break;

            case RunsOrdering.Region:
                str = "region"; break;

            case RunsOrdering.Emulated:
                str = "emulated"; break;

            case RunsOrdering.Date:
                str = "date"; break;

            case RunsOrdering.DateSubmitted:
                str = "submitted"; break;

            case RunsOrdering.Status:
                str = "status"; break;

            case RunsOrdering.VerifyDate:
                str = "verify-date"; break;
            }

            var list = new List <string>();

            if (!string.IsNullOrEmpty(str))
            {
                list.Add(string.Format("orderby={0}", str));
            }
            if (isDescending)
            {
                list.Add("direction=desc");
            }

            return(list);
        }
예제 #2
0
        public IEnumerable<Run> GetRuns(
            string userId = null, string guestName = null,
            string examerUserId = null, string gameId = null,
            string levelId = null, string categoryId = null,
            string platformId = null, string regionId = null,
            bool onlyEmulatedRuns = false, RunStatusType? status = null,
            int? elementsPerPage = null,
            RunEmbeds embeds = default(RunEmbeds),
            RunsOrdering orderBy = default(RunsOrdering))
        {
            var parameters = new List<string>() { embeds.ToString() };

            if (!string.IsNullOrEmpty(userId))
                parameters.Add(string.Format("user={0}", Uri.EscapeDataString(userId)));
            if (!string.IsNullOrEmpty(guestName))
                parameters.Add(string.Format("guest={0}", Uri.EscapeDataString(guestName)));
            if (!string.IsNullOrEmpty(examerUserId))
                parameters.Add(string.Format("examiner={0}", Uri.EscapeDataString(examerUserId)));
            if (!string.IsNullOrEmpty(gameId))
                parameters.Add(string.Format("game={0}", Uri.EscapeDataString(gameId)));
            if (!string.IsNullOrEmpty(levelId))
                parameters.Add(string.Format("level={0}", Uri.EscapeDataString(levelId)));
            if (!string.IsNullOrEmpty(categoryId))
                parameters.Add(string.Format("category={0}", Uri.EscapeDataString(categoryId)));
            if (!string.IsNullOrEmpty(platformId))
                parameters.Add(string.Format("platform={0}", Uri.EscapeDataString(platformId)));
            if (!string.IsNullOrEmpty(regionId))
                parameters.Add(string.Format("region={0}", Uri.EscapeDataString(regionId)));
            if (onlyEmulatedRuns)
                parameters.Add("emulated=yes");
            if (status.HasValue)
            {
                switch (status.Value)
                {
                    case RunStatusType.New:
                        parameters.Add("status=new"); break;
                    case RunStatusType.Rejected:
                        parameters.Add("status=rejected"); break;
                    case RunStatusType.Verified:
                        parameters.Add("status=verified"); break;
                }
            }
            if (elementsPerPage.HasValue)
                parameters.Add(string.Format("max={0}", elementsPerPage));

            parameters.AddRange(orderBy.ToParameters());

            var uri = GetRunsUri(parameters.ToParameters());
            return baseClient.DoPaginatedRequest(uri,
                x => Run.Parse(baseClient, x) as Run);
        }
        public IEnumerable <Run> GetRuns(
            string userId         = null, string guestName      = null,
            string examerUserId   = null, string gameId         = null,
            string levelId        = null, string categoryId     = null,
            string platformId     = null, string regionId       = null,
            bool onlyEmulatedRuns = false, RunStatusType?status = null,
            int?elementsPerPage   = null,
            RunEmbeds embeds      = default,
            RunsOrdering orderBy  = default)
        {
            var parameters = new List <string>()
            {
                embeds.ToString()
            };

            if (!string.IsNullOrEmpty(userId))
            {
                parameters.Add(string.Format("user={0}", Uri.EscapeDataString(userId)));
            }

            if (!string.IsNullOrEmpty(guestName))
            {
                parameters.Add(string.Format("guest={0}", Uri.EscapeDataString(guestName)));
            }

            if (!string.IsNullOrEmpty(examerUserId))
            {
                parameters.Add(string.Format("examiner={0}", Uri.EscapeDataString(examerUserId)));
            }

            if (!string.IsNullOrEmpty(gameId))
            {
                parameters.Add(string.Format("game={0}", Uri.EscapeDataString(gameId)));
            }

            if (!string.IsNullOrEmpty(levelId))
            {
                parameters.Add(string.Format("level={0}", Uri.EscapeDataString(levelId)));
            }

            if (!string.IsNullOrEmpty(categoryId))
            {
                parameters.Add(string.Format("category={0}", Uri.EscapeDataString(categoryId)));
            }

            if (!string.IsNullOrEmpty(platformId))
            {
                parameters.Add(string.Format("platform={0}", Uri.EscapeDataString(platformId)));
            }

            if (!string.IsNullOrEmpty(regionId))
            {
                parameters.Add(string.Format("region={0}", Uri.EscapeDataString(regionId)));
            }

            if (onlyEmulatedRuns)
            {
                parameters.Add("emulated=yes");
            }

            if (status.HasValue)
            {
                switch (status.Value)
                {
                case RunStatusType.New:
                    parameters.Add("status=new"); break;

                case RunStatusType.Rejected:
                    parameters.Add("status=rejected"); break;

                case RunStatusType.Verified:
                    parameters.Add("status=verified"); break;
                }
            }

            if (elementsPerPage.HasValue)
            {
                parameters.Add(string.Format("max={0}", elementsPerPage));
            }

            parameters.AddRange(orderBy.ToParameters());

            var uri = GetRunsUri(parameters.ToParameters());

            return(baseClient.DoPaginatedRequest(uri, x => Run.Parse(baseClient, x) as Run));
        }