public async Task <StudentLookupResult> GetCanvasUserFrom9DigitId(int uni9DigitId) { int tryCount = 0; var canvasUser = Bot._config.GetValue(Type.GetType("System.String"), "CanvasUser").ToString(); //string path = "https://canvas.hull.ac.uk/api/v1/courses/17835/users/" + uni9DigitId.ToString() + "/?as_user_id=sis_user_id:" + canvasUser; string path = "https://canvas.hull.ac.uk/api/v1/courses/17835/users/sis_user_id:" + uni9DigitId.ToString() + "/?as_user_id=sis_user_id:" + canvasUser; while (tryCount < 3) { (string response, string nextPagePath) = await GetStringAsync(path); try { JObject responseObject = JObject.Parse(response); if (responseObject.ContainsKey("errors")) { return(null); } StudentLookupResult studentLookupResult = new StudentLookupResult(responseObject); return(studentLookupResult); } catch { tryCount++; } } return(null); }
private static async void ValidateAllStudentUsers() { SocketGuild guild = GetGuild(); IReadOnlyCollection <SocketGuildUser> users = guild.Users; foreach (SocketGuildUser user in users) { SocketRole studentRole = GetRole("student"); if (user.Roles.Contains(studentRole)) { // is a student // check against student list Student student = null; if (!StudentsFile.Instance.TryGetDiscordStudent(user.Id, out student)) { // discord user is not in student list Console.WriteLine(user.Username + "#" + user.Discriminator); } else { StudentLookupResult canvasResult = await CanvasClient.Instance.GetCanvasUserFrom9DigitId(student.StudentId); Console.Write(user.Username + "#" + user.Discriminator); Console.Write(", " + user.Id); Console.Write(", " + canvasResult.Name); Console.WriteLine(", " + canvasResult.UniId); } } } }