public static bool UpdateUser(UserCourseRoleMappingModel userModel) { try { var user = ModelMapper.MapFromUserModel(userModel); return(SQLAdapter.UpdateUser(user)); } catch (Exception e) { return(false); } }
public static List <UserCourseRoleMappingModel> SaveUserCourseRoleMapping(UserCourseRoleMappingModel ucrm) { try { var ucrms = SQLAdapter.SaveUserCourseRoleMapping(ModelMapper.MapFromUserModelToUserCourseMapping(ucrm), ModelMapper.GetIdsFromTutorialGroupModelList(ucrm.TutorialGroups)); var mappedUcrms = ModelMapper.MapToUsersModel(ucrms); return(mappedUcrms); } catch (Exception e) { return(null); } }
private List <ChannelAccount> GetAdminChannelAccountsToTag(Microsoft.Bot.Connector.Activity activity, string teamId, int courseID, List <TeamsChannelAccount> teamsMembers, UserCourseRoleMappingModel mappedStudentCourseRole) { var adminsOnTeams = new List <ChannelAccount>(); var tutorialAdmins = new List <UserCourseRoleMappingModel>(); if (mappedStudentCourseRole != null) { if (mappedStudentCourseRole.Role != null && mappedStudentCourseRole.Role.Name != Constants.STUDENT_ROLE) { // Not a student - notify lecturer tutorialAdmins = SQLService.GetUsersByRole(Constants.LECTURER_ROLE, courseID); } else { // Is a student if (mappedStudentCourseRole.TutorialGroups != null && mappedStudentCourseRole.TutorialGroups.Count > 0) { // Get tutorial demonstrators // Only get the tutorial groups for this course foreach (var tutorialGroup in mappedStudentCourseRole.TutorialGroups.Where(x => x.CourseId == courseID)) { var demonstrators = SQLService.GetDemonstrators(courseID, tutorialGroup.ID); if (demonstrators != null) { tutorialAdmins.AddRange(demonstrators); } } } else { // student without tutorial class tutorialAdmins = SQLService.GetAllAdmins(courseID).Distinct().ToList(); } } // Find channel accounts if (tutorialAdmins != null && tutorialAdmins.Count > 0) { foreach (var admin in tutorialAdmins) { var adminOnTeams = teamsMembers.Where(x => (x.Email == admin.Email || x.Email == admin.UserName || x.UserPrincipalName == admin.UserName || x.UserPrincipalName == admin.Email) && (x.Email != mappedStudentCourseRole.Email && x.Email != mappedStudentCourseRole.UserName && x.UserPrincipalName != mappedStudentCourseRole.UserName && x.UserPrincipalName != mappedStudentCourseRole.Email) ).FirstOrDefault(); if (adminOnTeams != null) { adminsOnTeams.Add(adminOnTeams); } } } } else { // User not in database // Notify lecturer var lecturers = SQLService.GetUsersByRole(Constants.LECTURER_ROLE, courseID); foreach (var admin in lecturers) { var adminOnTeams = teamsMembers.Where(x => (x.Email == admin.Email || x.Email == admin.UserName || x.UserPrincipalName == admin.UserName || x.UserPrincipalName == admin.Email) ).FirstOrDefault(); if (adminOnTeams != null) { adminsOnTeams.Add(adminOnTeams); } } } if (adminsOnTeams != null && adminsOnTeams.Count > 0) { // Avoid tagging same person twice if they are part of multiple tutorial groups var distinct = adminsOnTeams .GroupBy(p => p.Id) .Select(g => g.First()) .ToList(); return(distinct); } else { return(null); } }
public async Task <List <UserCourseRoleMappingModel> > SaveUserCourseRoleMapping([FromBody] UserCourseRoleMappingModel ucrm) { try { return(SQLService.SaveUserCourseRoleMapping(ucrm)); } catch (Exception e) { Trace.TraceError(e.ToString()); return(null); } }