Example #1
0
        public static bool UpdateUser(UserCourseRoleMappingModel userModel)
        {
            try
            {
                var user = ModelMapper.MapFromUserModel(userModel);

                return(SQLAdapter.UpdateUser(user));
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Example #2
0
 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);
     }
 }
Example #3
0
        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);
            }
        }
Example #4
0
 public async Task <List <UserCourseRoleMappingModel> > SaveUserCourseRoleMapping([FromBody] UserCourseRoleMappingModel ucrm)
 {
     try
     {
         return(SQLService.SaveUserCourseRoleMapping(ucrm));
     }
     catch (Exception e)
     {
         Trace.TraceError(e.ToString());
         return(null);
     }
 }