Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        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));
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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));
        }
Exemplo n.º 16
0
        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));
        }
Exemplo n.º 17
0
        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));
        }
Exemplo n.º 18
0
        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));
        }
Exemplo n.º 19
0
        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)));
        }
Exemplo n.º 20
0
        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));
        }
Exemplo n.º 21
0
        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));
        }
Exemplo n.º 22
0
        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)));
        }
Exemplo n.º 23
0
        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));
        }
Exemplo n.º 24
0
        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));
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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));
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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));
        }
Exemplo n.º 29
0
        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));
        }
Exemplo n.º 30
0
        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);
        }
Exemplo n.º 31
0
        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);
        }
Exemplo n.º 32
0
        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);
        }
Exemplo n.º 33
0
        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);
        }
Exemplo n.º 34
0
        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));
        }
Exemplo n.º 37
0
        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);
        }
Exemplo n.º 38
0
        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));
        }
Exemplo n.º 39
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);
        }
Exemplo n.º 40
0
        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);
        }