private static void SendStudentInvitations(SyncCourseMessage message, GcCourse gcCourse, bool userIsDpi, ClassroomService service) { foreach (var gcCourseUser in gcCourse.GcCourseUsers.Where(u => u.IsTeacher == false)) { if (userIsDpi && !gcCourseUser.EmailAddress.Contains("@test.dpi.wi.gov")) { gcCourse.GcMessage = $"{gcCourseUser.EmailAddress} is outside test.dpi.wi.gov, {gcCourse.GcMessage}"; } else { Invitation i = new Invitation { CourseId = gcCourse.AliasId, UserId = gcCourseUser.EmailAddress, Role = "STUDENT" }; try { var x = service.Invitations.Create(i).Execute(); gcCourse.GcMessage = $"{gcCourseUser.EmailAddress} invited {DateTime.Now}, {gcCourse.GcMessage}"; message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Message = gcCourse.GcMessage }); gcCourseUser.UserId = x.UserId; } catch (GoogleApiException ex) { message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Error = true, Message = $"{gcCourseUser.EmailAddress} - {ex.Message}" }); if (ex.HttpStatusCode == HttpStatusCode.Conflict) { gcCourse.GcMessage = $"Invitation for '{gcCourseUser.EmailAddress}' already exists, {gcCourse.GcMessage}"; } else { gcCourse.GcMessage = $"{ex.Message}, {gcCourse.GcMessage}"; } } } } }
private static void SendTeacherInvitations(SyncCourseMessage message, ClassroomService service, GcCourse gcCourse, bool userIsDpi) { var teachers = service.Courses.Teachers.List(gcCourse.AliasId).Execute(); foreach (var gcCourseUser in gcCourse.GcCourseUsers.Where(u => u.IsTeacher == true)) { if (userIsDpi && !gcCourseUser.EmailAddress.Contains("@test.dpi.wi.gov")) { gcCourse.GcMessage = $"{gcCourseUser.EmailAddress} is outside test.dpi.wi.gov, {gcCourse.GcMessage}"; } else { if (gcCourseUser.UserId == null || teachers.Teachers.All(t => t.UserId != gcCourseUser.UserId)) { Invitation i = new Invitation { CourseId = gcCourse.AliasId, UserId = gcCourseUser.EmailAddress, Role = "TEACHER" }; try { var x = service.Invitations.Create(i).Execute(); gcCourse.GcMessage = $"{gcCourseUser.EmailAddress} invited {DateTime.Now}, {gcCourse.GcMessage}"; message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Message = gcCourse.GcMessage }); gcCourseUser.UserId = x.UserId; } catch (GoogleApiException ex) { message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Error = true, Message = $"{gcCourseUser.EmailAddress} - {ex.Message}" }); //doing a get when course does not exists throws an exception, so does adding a course with the same id if (ex.HttpStatusCode == HttpStatusCode.Conflict) { gcCourse.GcMessage = $"Invitation for '{gcCourseUser.EmailAddress}' already exists, {gcCourse.GcMessage}"; } else { gcCourse.GcMessage = $"{ex.Message}, {gcCourse.GcMessage}"; } } } } } }
private static Course SendCourse(SyncCourseMessage message, Course c, ClassroomService service, GcCourse gcCourse, string schoolName) { try { c = service.Courses.Get(gcCourse.AliasId).Execute(); gcCourse.CourseId = c.Id; gcCourse.Owner = c.OwnerId; gcCourse.Saved = true; if (c.CourseState == "ACTIVE") { gcCourse.Activated = true; } ; //if previously saved and then deleted directly in Google, clear the UserId so it can save again if (gcCourse.GcCourseUsers.Any(u => u.UserId != null)) { foreach (var gcCourseGcCourseUser in gcCourse.GcCourseUsers) { gcCourseGcCourseUser.UserId = null; } } } catch (GoogleApiException ex) { //new course if (ex.HttpStatusCode == HttpStatusCode.NotFound) { var gc = new Course { Id = gcCourse.AliasId, Name = gcCourse.LocalCourseTitle, Section = $"{gcCourse.SectionIdentifier} - {gcCourse.SchoolYear} {gcCourse.SessionName} at {schoolName}", OwnerId = gcCourse.Owner }; try { c = service.Courses.Create(gc).Execute(); gcCourse.GcMessage = $"Saved {DateTime.Now}"; gcCourse.Saved = true; gcCourse.CourseId = c.Id; gcCourse.Owner = c.OwnerId; gcCourse.Activated = false; message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Message = gcCourse.GcMessage }); } catch (GoogleApiException ex2) { message.Logs.Add(new GcLog { GcId = gcCourse.AliasId.IdToName(), Error = true, Message = ex2.Message }); gcCourse.Saved = false; gcCourse.GcMessage = ex2.Message; } } else { gcCourse.Saved = false; gcCourse.GcMessage = ex.Message; } } return(c); }