public async Task <List <Role> > GetGroupRanks(int GroupID) { var Request = APIRequestBuilder.CreateWebRequest(false, $"https://groups.roblox.com/v1/groups/{GroupID}/roles"); string JSON = ""; try { WebResponse Response = await Request.GetResponseAsync(); using (var Reader = new StreamReader(Response.GetResponseStream())) { JSON = Reader.ReadToEnd(); } } catch (WebException e) { Console.WriteLine(e.Message); throw new Exception(e.Message); } var Data = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(JSON); JArray Roles = Data["roles"]; var JTokenList = Roles.Value <JArray>().OrderBy(x => x.SelectToken("rank")).ToList(); List <Role> RolesList = new List <Role>(); foreach (var item in JTokenList) { RolesList.Add( new Role { Id = (int)item.SelectToken("id"), Name = (string)item.SelectToken("name"), Rank = (int)item.SelectToken("rank"), MemberCount = (int)item.SelectToken("memberCount") } ); } return(RolesList); }
public async Task <bool> SetRankTest(int GroupID, int UserID, int RankID) { string PostData = $"{{\"roleId\": \"{RankID}\"}}"; var Request = APIRequestBuilder.CreateWebRequest(true, $"https://groups.roblox.com/v1/groups/{GroupID}/users/{UserID}", CookieJar, "PATCH", PostData); try { WebResponse Response = await Request.GetResponseAsync(); } catch (WebException e) { string token = e.Response.Headers["x-csrf-token"]; Request = APIRequestBuilder.CreateWebRequest(true, $"https://groups.roblox.com/v1/groups/{GroupID}/users/{UserID}", CookieJar, "PATCH", PostData, token); WebResponse Response = await Request.GetResponseAsync(); using (var reader = new StreamReader(Response.GetResponseStream())) { string result = reader.ReadToEnd(); Console.WriteLine(result); } } return(true); }