/// <summary> /// Updates the update strategy of this LCLeaderboard. /// </summary> /// <param name="updateStrategy"></param> /// <returns></returns> public async Task <LCLeaderboard> UpdateUpdateStrategy(LCLeaderboardUpdateStrategy updateStrategy) { Dictionary <string, object> data = new Dictionary <string, object> { { "updateStrategy", updateStrategy.ToString().ToLower() } }; string path = $"leaderboard/leaderboards/{StatisticName}"; Dictionary <string, object> result = await LCCore.HttpClient.Put <Dictionary <string, object> >(path, data : data); if (result.TryGetValue("updateStrategy", out object strategy) && Enum.TryParse(strategy as string, true, out LCLeaderboardUpdateStrategy s)) { UpdateStrategy = s; } 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); }