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