Exemple #1
0
        /// <summary>
        /// Updates the interval of the version that this LCLeaderboard changes.
        /// </summary>
        /// <param name="versionChangeInterval"></param>
        /// <returns></returns>
        public async Task <LCLeaderboard> UpdateVersionChangeInterval(LCLeaderboardVersionChangeInterval versionChangeInterval)
        {
            Dictionary <string, object> data = new Dictionary <string, object> {
                { "versionChangeInterval", versionChangeInterval.ToString().ToLower() }
            };
            string path = $"leaderboard/leaderboards/{StatisticName}";
            Dictionary <string, object> result = await LCCore.HttpClient.Put <Dictionary <string, object> >(path,
                                                                                                            data : data);

            if (result.TryGetValue("versionChangeInterval", out object interval) &&
                Enum.TryParse(interval as string, true, out LCLeaderboardVersionChangeInterval i))
            {
                VersionChangeInterval = i;
            }
            return(this);
        }
Exemple #2
0
        /// <summary>
        /// Creates a LCLeaderboard with a statistic name.
        /// </summary>
        /// <param name="statisticName"></param>
        /// <param name="order"></param>
        /// <param name="updateStrategy"></param>
        /// <param name="versionChangeInterval"></param>
        /// <returns></returns>
        public static async Task <LCLeaderboard> CreateLeaderboard(string statisticName,
                                                                   LCLeaderboardOrder order = LCLeaderboardOrder.Descending,
                                                                   LCLeaderboardUpdateStrategy updateStrategy = LCLeaderboardUpdateStrategy.Better,
                                                                   LCLeaderboardVersionChangeInterval versionChangeInterval = LCLeaderboardVersionChangeInterval.Week)
        {
            if (string.IsNullOrEmpty(statisticName))
            {
                throw new ArgumentNullException(nameof(statisticName));
            }
            Dictionary <string, object> data = new Dictionary <string, object> {
                { "statisticName", statisticName },
                { "order", order.ToString().ToLower() },
                { "versionChangeInterval", versionChangeInterval.ToString().ToLower() },
                { "updateStrategy", updateStrategy.ToString().ToLower() },
            };
            string path = "leaderboard/leaderboards";
            Dictionary <string, object> result = await LCCore.HttpClient.Post <Dictionary <string, object> >(path,
                                                                                                             data : data);

            LCLeaderboard leaderboard = new LCLeaderboard();

            leaderboard.Merge(result);
            return(leaderboard);
        }