public IEnumerable <User> GetUsersFuzzy( string fuzzyName = null, int?elementsPerPage = null, UsersOrdering orderBy = default(UsersOrdering)) { var parameters = new List <string>(); if (!string.IsNullOrEmpty(fuzzyName)) { parameters.Add(string.Format("lookup={0}", Uri.EscapeDataString(fuzzyName))); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage)); } parameters.AddRange(orderBy.ToParameters()); var uri = GetUsersUri(parameters.ToParameters()); return(baseClient.DoPaginatedRequest(uri, x => User.Parse(baseClient, x) as User)); }
public ReadOnlyCollection <Record> GetPersonalBests( string userId, int?top = null, string seriesId = null, string gameId = null, RunEmbeds embeds = default(RunEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; if (top.HasValue) { parameters.Add(string.Format("top={0}", top.Value)); } if (!string.IsNullOrEmpty(seriesId)) { parameters.Add(string.Format("series={0}", Uri.EscapeDataString(seriesId))); } if (!string.IsNullOrEmpty(gameId)) { parameters.Add(string.Format("game={0}", Uri.EscapeDataString(gameId))); } var uri = GetUsersUri(string.Format("/{0}/personal-bests{1}", Uri.EscapeDataString(userId), parameters.ToParameters())); return(baseClient.DoDataCollectionRequest(uri, x => Record.Parse(baseClient, x) as Record)); }
public IEnumerable <Leaderboard> GetRecords(string levelId, int?top = null, bool skipEmptyLeaderboards = false, int?elementsPerPage = null, LeaderboardEmbeds embeds = default(LeaderboardEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; if (top.HasValue) { parameters.Add(string.Format("top={0}", top.Value)); } if (skipEmptyLeaderboards) { parameters.Add("skip-empty=true"); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } var uri = GetLevelsUri(string.Format("/{0}/records{1}", Uri.EscapeDataString(levelId), parameters.ToParameters())); return(baseClient.DoPaginatedRequest <Leaderboard>(uri, x => Leaderboard.Parse(baseClient, x))); }
public ReadOnlyCollection <Variable> GetVariables(string gameId, VariablesOrdering orderBy = default) { var parameters = new List <string>(orderBy.ToParameters()); var uri = GetGamesUri(string.Format("/{0}/variables{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return(baseClient.DoDataCollectionRequest(uri, x => Variable.Parse(baseClient, x) as Variable)); }
public Game GetGame(string gameId, GameEmbeds embeds = default(GameEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; var uri = GetGamesUri(string.Format("/{0}{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return Game.Parse(baseClient, result.data); }
public IEnumerable <Game> GetGames( string seriesId, string name = null, int?yearOfRelease = null, string platformId = null, string regionId = null, string moderatorId = null, int?elementsPerPage = null, GameEmbeds embeds = default(GameEmbeds), GamesOrdering orderBy = default(GamesOrdering)) { var parameters = new List <string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!string.IsNullOrEmpty(name)) { parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); } if (yearOfRelease.HasValue) { parameters.Add(string.Format("released={0}", yearOfRelease.Value)); } 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 (!string.IsNullOrEmpty(moderatorId)) { parameters.Add(string.Format("moderator={0}", Uri.EscapeDataString(moderatorId))); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } var uri = GetSeriesUri(string.Format("/{0}/games{1}", Uri.EscapeDataString(seriesId), parameters.ToParameters())); return(baseClient.DoPaginatedRequest(uri, x => Game.Parse(baseClient, x) as Game)); }
public Run GetRun(string runId, RunEmbeds embeds = default(RunEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; var uri = GetRunsUri(string.Format("/{0}{1}", Uri.EscapeDataString(runId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return Run.Parse(baseClient, result.data); }
public Level GetLevel(string levelId, LevelEmbeds embeds = default(LevelEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; var uri = GetLevelsUri(string.Format("/{0}{1}", Uri.EscapeDataString(levelId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return Level.Parse(baseClient, result.data); }
public IEnumerable<GameHeader> GetGameHeaders(int elementsPerPage = 1000, GamesOrdering orderBy = default(GamesOrdering)) { var parameters = new List<string>() { "_bulk=yes" }; parameters.AddRange(orderBy.ToParameters()); parameters.Add(string.Format("max={0}", elementsPerPage)); var uri = GetGamesUri(parameters.ToParameters()); return baseClient.DoPaginatedRequest(uri, x => GameHeader.Parse(baseClient, x) as GameHeader); }
public IEnumerable <User> GetUsers( string name = null, string twitch = null, string hitbox = null, string twitter = null, string speedrunslive = null, int?elementsPerPage = null, UsersOrdering orderBy = default(UsersOrdering)) { var parameters = new List <string>(); if (!string.IsNullOrEmpty(name)) { parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); } if (!string.IsNullOrEmpty(twitch)) { parameters.Add(string.Format("twitch={0}", Uri.EscapeDataString(twitch))); } if (!string.IsNullOrEmpty(hitbox)) { parameters.Add(string.Format("hitbox={0}", Uri.EscapeDataString(hitbox))); } if (!string.IsNullOrEmpty(twitter)) { parameters.Add(string.Format("twitter={0}", Uri.EscapeDataString(twitter))); } if (!string.IsNullOrEmpty(speedrunslive)) { parameters.Add(string.Format("speedrunslive={0}", Uri.EscapeDataString(speedrunslive))); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage)); } parameters.AddRange(orderBy.ToParameters()); var uri = GetUsersUri(parameters.ToParameters()); return(baseClient.DoPaginatedRequest(uri, x => User.Parse(baseClient, x) as User)); }
public IEnumerable <GameHeader> GetGameHeaders(int elementsPerPage = 1000, GamesOrdering orderBy = default) { var parameters = new List <string>() { "_bulk=yes" }; parameters.AddRange(orderBy.ToParameters()); parameters.Add(string.Format("max={0}", elementsPerPage)); var uri = GetGamesUri(parameters.ToParameters()); return(baseClient.DoPaginatedRequest(uri, x => GameHeader.Parse(baseClient, x) as GameHeader)); }
public Game GetGame(string gameId, GameEmbeds embeds = default(GameEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; var uri = GetGamesUri(string.Format("/{0}{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return(Game.Parse(baseClient, result.data)); }
public IEnumerable<Platform> GetPlatforms(int? elementsPerPage = null, PlatformsOrdering orderBy = default(PlatformsOrdering)) { var parameters = new List<string>(); parameters.AddRange(orderBy.ToParameters()); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage.Value)); var uri = GetPlatformsUri(parameters.ToParameters()); return baseClient.DoPaginatedRequest(uri, x => Platform.Parse(baseClient, x) as Platform); }
public Series GetSingleSeries(string seriesId, SeriesEmbeds embeds = default(SeriesEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; var uri = GetSeriesUri(string.Format("/{0}{1}", Uri.EscapeDataString(seriesId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return(Series.Parse(baseClient, result.data)); }
public Run GetRun(string runId, RunEmbeds embeds = default(RunEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; var uri = GetRunsUri(string.Format("/{0}{1}", Uri.EscapeDataString(runId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return(Run.Parse(baseClient, result.data)); }
public Level GetLevel(string levelId, LevelEmbeds embeds = default(LevelEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; var uri = GetLevelsUri(string.Format("/{0}{1}", Uri.EscapeDataString(levelId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return(Level.Parse(baseClient, result.data)); }
public IEnumerable <Platform> GetPlatforms(int?elementsPerPage = null, PlatformsOrdering orderBy = default(PlatformsOrdering)) { var parameters = new List <string>(); parameters.AddRange(orderBy.ToParameters()); if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } var uri = GetPlatformsUri(parameters.ToParameters()); return(baseClient.DoPaginatedRequest(uri, x => Platform.Parse(baseClient, x) as Platform)); }
public IEnumerable<Notification> GetNotifications( int? elementsPerPage = null, NotificationsOrdering ordering = default(NotificationsOrdering)) { var parameters = new List<string>(); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage.Value)); parameters.AddRange(ordering.ToParameters()); var uri = GetNotificationsUri(string.Format("{0}", parameters.ToParameters())); return baseClient.DoPaginatedRequest<Notification>(uri, x => Notification.Parse(baseClient, x)); }
public IEnumerable <Leaderboard> GetRecords( string gameId, int?top = null, LeaderboardScope scope = LeaderboardScope.All, bool includeMiscellaneousCategories = true, bool skipEmptyLeaderboards = false, int?elementsPerPage = null, LeaderboardEmbeds embeds = default) { var parameters = new List <string>() { embeds.ToString() }; if (top.HasValue) { parameters.Add(string.Format("top={0}", top.Value)); } if (scope != LeaderboardScope.All) { parameters.Add(scope.ToParameter()); } if (!includeMiscellaneousCategories) { parameters.Add("miscellaneous=false"); } if (skipEmptyLeaderboards) { parameters.Add("skip-empty=true"); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } var uri = GetGamesUri(string.Format("/{0}/records{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return(baseClient.DoPaginatedRequest <Leaderboard>(uri, x => Leaderboard.Parse(baseClient, x))); }
public ReadOnlyCollection <Level> GetLevels(string gameId, LevelEmbeds embeds = default(LevelEmbeds), LevelsOrdering orderBy = default(LevelsOrdering)) { var parameters = new List <string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); var uri = GetGamesUri(string.Format("/{0}/levels{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return(baseClient.DoDataCollectionRequest(uri, x => Level.Parse(baseClient, x) as Level)); }
public ReadOnlyCollection <Game> GetRomHacks(string gameId, GameEmbeds embeds = default(GameEmbeds), GamesOrdering orderBy = default(GamesOrdering)) { var parameters = new List <string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); var uri = GetGamesUri(string.Format("/{0}/romhacks{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return(baseClient.DoDataCollectionRequest(uri, x => Game.Parse(baseClient, x) as Game)); }
public IEnumerable <Notification> GetNotifications( int?elementsPerPage = null, NotificationsOrdering ordering = default(NotificationsOrdering)) { var parameters = new List <string>(); if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } parameters.AddRange(ordering.ToParameters()); var uri = GetNotificationsUri(string.Format("{0}", parameters.ToParameters())); return(baseClient.DoPaginatedRequest <Notification>(uri, x => Notification.Parse(baseClient, x))); }
public ReadOnlyCollection<Category> GetCategories( string levelId, bool miscellaneous = true, CategoryEmbeds embeds = default(CategoryEmbeds), CategoriesOrdering orderBy = default(CategoriesOrdering)) { var parameters = new List<string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!miscellaneous) parameters.Add("miscellaneous=no"); var uri = GetLevelsUri(string.Format("/{0}/categories{1}", Uri.EscapeDataString(levelId), parameters.ToParameters())); return baseClient.DoDataCollectionRequest<Category>(uri, x => Category.Parse(baseClient, x)); }
public IEnumerable<Leaderboard> GetRecords(string categoryId, int? top = null, bool skipEmptyLeaderboards = false, int? elementsPerPage = null, LeaderboardEmbeds embeds = default(LeaderboardEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; if (top.HasValue) parameters.Add(string.Format("top={0}", top.Value)); if (skipEmptyLeaderboards) parameters.Add("skip-empty=true"); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage.Value)); var uri = GetCategoriesUri(string.Format("/{0}/records{1}", Uri.EscapeDataString(categoryId), parameters.ToParameters())); return baseClient.DoPaginatedRequest<Leaderboard>(uri, x => Leaderboard.Parse(baseClient, x)); }
public ReadOnlyCollection<Record> GetPersonalBests( string userId, int? top = null, string seriesId = null, string gameId = null, RunEmbeds embeds = default(RunEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; if (top.HasValue) parameters.Add(string.Format("top={0}", top.Value)); if (!string.IsNullOrEmpty(seriesId)) parameters.Add(string.Format("series={0}", Uri.EscapeDataString(seriesId))); if (!string.IsNullOrEmpty(gameId)) parameters.Add(string.Format("game={0}", Uri.EscapeDataString(gameId))); var uri = GetUsersUri(string.Format("/{0}/personal-bests{1}", Uri.EscapeDataString(userId), parameters.ToParameters())); return baseClient.DoDataCollectionRequest(uri, x => Record.Parse(baseClient, x) as Record); }
public IEnumerable <Series> GetMultipleSeries( string name = null, string abbreviation = null, string moderatorId = null, int?elementsPerPage = null, SeriesEmbeds embeds = default(SeriesEmbeds), SeriesOrdering orderBy = default(SeriesOrdering)) { var parameters = new List <string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!string.IsNullOrEmpty(name)) { parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); } if (!string.IsNullOrEmpty(abbreviation)) { parameters.Add(string.Format("abbreviation={0}", Uri.EscapeDataString(abbreviation))); } if (!string.IsNullOrEmpty(moderatorId)) { parameters.Add(string.Format("moderator={0}", Uri.EscapeDataString(moderatorId))); } if (elementsPerPage.HasValue) { parameters.Add(string.Format("max={0}", elementsPerPage.Value)); } var uri = GetSeriesUri(parameters.ToParameters()); return(baseClient.DoPaginatedRequest(uri, x => Series.Parse(baseClient, x) as Series)); }
public IEnumerable<Game> GetGames( string seriesId, string name = null, int? yearOfRelease = null, string platformId = null, string regionId = null, string moderatorId = null, int? elementsPerPage = null, GameEmbeds embeds = default(GameEmbeds), GamesOrdering orderBy = default(GamesOrdering)) { var parameters = new List<string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!string.IsNullOrEmpty(name)) parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); if (yearOfRelease.HasValue) parameters.Add(string.Format("released={0}", yearOfRelease.Value)); 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 (!string.IsNullOrEmpty(moderatorId)) parameters.Add(string.Format("moderator={0}", Uri.EscapeDataString(moderatorId))); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage.Value)); var uri = GetSeriesUri(string.Format("/{0}/games{1}", Uri.EscapeDataString(seriesId), parameters.ToParameters())); return baseClient.DoPaginatedRequest(uri, x => Game.Parse(baseClient, x) as Game); }
public ReadOnlyCollection <Category> GetCategories( string gameId, bool miscellaneous = true, CategoryEmbeds embeds = default(CategoryEmbeds), CategoriesOrdering orderBy = default(CategoriesOrdering)) { var parameters = new List <string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!miscellaneous) { parameters.Add("miscellaneous=no"); } var uri = GetGamesUri(string.Format("/{0}/categories{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return(baseClient.DoDataCollectionRequest(uri, x => Category.Parse(baseClient, x) as Category)); }
public ReadOnlyCollection<Variable> GetVariables(string categoryId, VariablesOrdering orderBy = default(VariablesOrdering)) { var parameters = new List<string>(orderBy.ToParameters()); var uri = GetCategoriesUri(string.Format("/{0}/variables{1}", Uri.EscapeDataString(categoryId), parameters.ToParameters())); return baseClient.DoDataCollectionRequest<Variable>(uri, x => Variable.Parse(baseClient, x)); }
public IEnumerable<User> GetUsers( string name = null, string twitch = null, string hitbox = null, string twitter = null, string speedrunslive = null, int? elementsPerPage = null, UsersOrdering orderBy = default(UsersOrdering)) { var parameters = new List<string>(); if (!string.IsNullOrEmpty(name)) parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); if (!string.IsNullOrEmpty(twitch)) parameters.Add(string.Format("twitch={0}", Uri.EscapeDataString(twitch))); if (!string.IsNullOrEmpty(hitbox)) parameters.Add(string.Format("hitbox={0}", Uri.EscapeDataString(hitbox))); if (!string.IsNullOrEmpty(twitter)) parameters.Add(string.Format("twitter={0}", Uri.EscapeDataString(twitter))); if (!string.IsNullOrEmpty(speedrunslive)) parameters.Add(string.Format("speedrunslive={0}", Uri.EscapeDataString(speedrunslive))); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage)); parameters.AddRange(orderBy.ToParameters()); var uri = GetUsersUri(parameters.ToParameters()); return baseClient.DoPaginatedRequest(uri, x => User.Parse(baseClient, x) as User); }
private Leaderboard getLeaderboard( string uri, int? top = null, string platformId = null, string regionId = null, EmulatorsFilter emulatorsFilter = EmulatorsFilter.NotSet, bool filterOutRunsWithoutVideo = false, TimingMethod? orderBy = null, IEnumerable<VariableValue> variableFilters = null, LeaderboardEmbeds embeds = default(LeaderboardEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; if (top.HasValue) parameters.Add(string.Format("top={0}", top.Value)); 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 (emulatorsFilter != EmulatorsFilter.NotSet) parameters.Add(string.Format("emulators={0}", emulatorsFilter == EmulatorsFilter.OnlyEmulators ? "true" : "false")); if (filterOutRunsWithoutVideo) parameters.Add("video-only=true"); if (orderBy.HasValue) { var timing = orderBy.Value.ToAPIString(); parameters.Add(string.Format("timing={0}", timing)); } if (variableFilters != null) { foreach (var variableValue in variableFilters) { parameters.Add(string.Format("var-{0}={1}", Uri.EscapeDataString(variableValue.VariableID), Uri.EscapeDataString(variableValue.ID))); } } var innerUri = GetLeaderboardsUri(string.Format("{0}{1}", uri, parameters.ToParameters())); var result = baseClient.DoRequest(innerUri); return Leaderboard.Parse(baseClient, result.data); }
public ReadOnlyCollection<Level> GetLevels(string gameId, LevelEmbeds embeds = default(LevelEmbeds), LevelsOrdering orderBy = default(LevelsOrdering)) { var parameters = new List<string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); var uri = GetGamesUri(string.Format("/{0}/levels{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return baseClient.DoDataCollectionRequest(uri, x => Level.Parse(baseClient, x) as Level); }
public IEnumerable<Series> GetMultipleSeries( string name = null, string abbreviation = null, string moderatorId = null, int? elementsPerPage = null, SeriesEmbeds embeds = default(SeriesEmbeds), SeriesOrdering orderBy = default(SeriesOrdering)) { var parameters = new List<string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); if (!string.IsNullOrEmpty(name)) parameters.Add(string.Format("name={0}", Uri.EscapeDataString(name))); if (!string.IsNullOrEmpty(abbreviation)) parameters.Add(string.Format("abbreviation={0}", Uri.EscapeDataString(abbreviation))); if (!string.IsNullOrEmpty(moderatorId)) parameters.Add(string.Format("moderator={0}", Uri.EscapeDataString(moderatorId))); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage.Value)); var uri = GetSeriesUri(parameters.ToParameters()); return baseClient.DoPaginatedRequest(uri, x => Series.Parse(baseClient, x) as Series); }
public Series GetSingleSeries(string seriesId, SeriesEmbeds embeds = default(SeriesEmbeds)) { var parameters = new List<string>() { embeds.ToString() }; var uri = GetSeriesUri(string.Format("/{0}{1}", Uri.EscapeDataString(seriesId), parameters.ToParameters())); var result = baseClient.DoRequest(uri); return Series.Parse(baseClient, result.data); }
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)); }
public Run Submit(string categoryId, string platformId, string levelId = null, DateTime?date = null, string regionId = null, TimeSpan?realTime = null, TimeSpan?realTimeWithoutLoads = null, TimeSpan?gameTime = null, bool?emulated = null, Uri videoUri = null, string comment = null, Uri splitsIOUri = null, IEnumerable <VariableValue> variables = null, bool?verify = null, bool simulateSubmitting = false) { var parameters = new List <string>(); if (simulateSubmitting) { parameters.Add("dry=yes"); } var uri = GetRunsUri(parameters.ToParameters()); dynamic postBody = new ExpandoObject(); dynamic runElement = new ExpandoObject(); runElement.category = categoryId; runElement.platform = platformId; if (!string.IsNullOrEmpty(levelId)) { runElement.level = levelId; } if (date.HasValue) { runElement.date = date.Value.ToUniversalTime().ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } if (!string.IsNullOrEmpty(regionId)) { runElement.region = regionId; } if (verify.HasValue) { runElement.verified = verify; } dynamic timesElement = new ExpandoObject(); if (!realTime.HasValue && !realTimeWithoutLoads.HasValue && !gameTime.HasValue) { throw new APIException("You need to provide at least one time."); } if (realTime.HasValue) { timesElement.realtime = realTime.Value.TotalSeconds; } if (realTimeWithoutLoads.HasValue) { timesElement.realtime_noloads = realTimeWithoutLoads.Value.TotalSeconds; } if (gameTime.HasValue) { timesElement.ingame = gameTime.Value.TotalSeconds; } runElement.times = timesElement; if (emulated.HasValue) { runElement.emulated = emulated.Value; } if (videoUri != null) { runElement.video = videoUri.AbsoluteUri; } if (!string.IsNullOrEmpty(comment)) { runElement.comment = comment; } if (splitsIOUri != null) { runElement.splitsio = splitsIOUri.PathAndQuery.Substring(splitsIOUri.PathAndQuery.LastIndexOf('/') + 1); } if (variables != null) { var variablesList = variables.ToList(); if (variablesList.Any()) { var variablesElement = new Dictionary <string, dynamic>(); foreach (var variable in variablesList) { var key = variable.VariableID; dynamic value = new ExpandoObject(); if (variable.IsCustomValue) { value.type = "user-defined"; value.value = variable.Value; } else { value.type = "pre-defined"; value.value = variable.ID; } variablesElement.Add(key, value); } runElement.variables = variablesElement; } } postBody.run = runElement; var result = baseClient.DoPostRequest(uri, postBody.ToString()); return(Run.Parse(baseClient, result.data)); }
public ReadOnlyCollection<Game> GetRomHacks(string gameId, GameEmbeds embeds = default(GameEmbeds), GamesOrdering orderBy = default(GamesOrdering)) { var parameters = new List<string>() { embeds.ToString() }; parameters.AddRange(orderBy.ToParameters()); var uri = GetGamesUri(string.Format("/{0}/romhacks{1}", Uri.EscapeDataString(gameId), parameters.ToParameters())); return baseClient.DoDataCollectionRequest(uri, x => Game.Parse(baseClient, x) as Game); }
private Leaderboard getLeaderboard( string uri, int?top = null, string platformId = null, string regionId = null, EmulatorsFilter emulatorsFilter = EmulatorsFilter.NotSet, bool filterOutRunsWithoutVideo = false, TimingMethod?orderBy = null, DateTime?filterOutRunsAfter = null, IEnumerable <VariableValue> variableFilters = null, LeaderboardEmbeds embeds = default(LeaderboardEmbeds)) { var parameters = new List <string>() { embeds.ToString() }; if (top.HasValue) { parameters.Add(string.Format("top={0}", top.Value)); } 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 (emulatorsFilter != EmulatorsFilter.NotSet) { parameters.Add(string.Format("emulators={0}", emulatorsFilter == EmulatorsFilter.OnlyEmulators ? "true" : "false")); } if (filterOutRunsWithoutVideo) { parameters.Add("video-only=true"); } if (orderBy.HasValue) { var timing = orderBy.Value.ToAPIString(); parameters.Add(string.Format("timing={0}", timing)); } if (filterOutRunsAfter.HasValue) { var date = filterOutRunsAfter.Value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); parameters.Add(string.Format("date={0}", Uri.EscapeDataString(date))); } if (variableFilters != null) { foreach (var variableValue in variableFilters) { if (variableValue != null) { parameters.Add(string.Format("var-{0}={1}", Uri.EscapeDataString(variableValue.VariableID), Uri.EscapeDataString(variableValue.ID))); } } } var innerUri = GetLeaderboardsUri(string.Format("{0}{1}", uri, parameters.ToParameters())); var result = baseClient.DoRequest(innerUri); return(Leaderboard.Parse(baseClient, result.data)); }
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<User> GetUsersFuzzy( string fuzzyName = null, int? elementsPerPage = null, UsersOrdering orderBy = default(UsersOrdering)) { var parameters = new List<string>(); if (!string.IsNullOrEmpty(fuzzyName)) parameters.Add(string.Format("lookup={0}", Uri.EscapeDataString(fuzzyName))); if (elementsPerPage.HasValue) parameters.Add(string.Format("max={0}", elementsPerPage)); parameters.AddRange(orderBy.ToParameters()); var uri = GetUsersUri(parameters.ToParameters()); return baseClient.DoPaginatedRequest(uri, x => User.Parse(baseClient, x) as User); }