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); }
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)); }