public DomainModelResponse RemoveUserFromGroup(UpdateUserGroup request) { AspNetUsers up = _repUser.Get(filter: f => f.Email == request.emailId).FirstOrDefault(); if (up == null) { _securityResponse.addResponse("RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "User : "******"RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "Course : " + request.courseCode); throw _securityResponse; } EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.UserId == up.Id && f.CourseId == course.CourseId).FirstOrDefault(); if (cur == null) { _securityResponse.addResponse("RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "CourseUserRole for User : "******"RemoveUserFromGroup", MessageCodes.InfoSavedSuccessfully, "CourseUserRole for user : " + request.emailId); return(_securityResponse); }
public DomainModelResponse Add(CourseAddRequest request) { GroupType gt = _repGroupType.Get(filter: x => x.GroupTypeCode == request.GroupType).FirstOrDefault(); Course course = new Course() { CourseCode = request.CourseCode, CourseName = request.CourseName, CourseDescription = request.CourseDescription, LastChangedTime = DateTime.UtcNow, DesiredSkillSets = request.DesiredSkillSets, GroupType = gt, Roaster = null, Term = request.Term, PrefGroupTypeId = gt.GroupTypeId, PrefGroupSize = request.GroupSize, SimilarSkillSetPreffered = request.PreferSimiliarSkillSet }; _repCourse.Add(course); _uow.Commit(); course = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault(); if (request.userList != null) { List <string> roleCodes = request.userList.Select(x => x.roleCode).ToList(); List <string> emailIds = request.userList.Select(x => x.emailId).ToList(); List <AspNetRoles> roles = _repRole.Get(filter: f => roleCodes.Contains(f.Name)).ToList(); List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList(); foreach (var user in request.userList) { EntityModel.CourseUser cur = new EntityModel.CourseUser() { CourseId = course.CourseId, Course = course, UserId = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id, AspNetUsers = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault(), LastChangedTime = DateTime.UtcNow }; _repCourseUserRole.Add(cur); } _uow.Commit(); } _courseResponse.addResponse("Add", MessageCodes.InfoCreatedSuccessfully, "Course : " + request.CourseCode); return(_courseResponse); }
public DomainModelResponse UpdateCourseUserAnswer(CourseUserUpdateRequest request) { AspNetUsers up = _repUserProfile.Get(filter: f => f.Email == request.email).FirstOrDefault(); Course course = _repCourse.Get(filter: f => f.CourseCode == request.courseCode).FirstOrDefault(); EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.UserId == up.Id && f.CourseId == course.CourseId).FirstOrDefault(); bool isAdd = false; if (cur == null) //User is nto added { isAdd = true; cur = new EntityModel.CourseUser() { CourseId = course.CourseId, Course = course, UserId = up.Id, AspNetUsers = up }; } if (!string.IsNullOrWhiteSpace(request.answerSet)) { cur.AnswerSet = request.answerSet; } if (!string.IsNullOrWhiteSpace(request.GroupCode)) { Group grp = _repGroup.Get(filter: f => f.GroupCode == request.GroupCode).FirstOrDefault(); cur.GroupId = grp.GroupId; cur.Group = grp; } if (isAdd) { _repCourseUserRole.Add(cur); _courseUserResponse.addResponse("Add", MessageCodes.InfoCreatedSuccessfully, "Course User Role for User : "******"Update", MessageCodes.InfoSavedSuccessfully, "Course User Role for User : " + request.email); } _uow.Commit(); return(_courseUserResponse); }
public DomainModelResponse Update(CourseUpdateRequest request) { Course course = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault(); bool updateCourse = false; if (request.CourseName != null) //Course name update { course.CourseName = request.CourseName; updateCourse = true; } if (request.CourseDescription != null) { course.CourseDescription = request.CourseDescription; updateCourse = true; } if (request.QuestionnaireCode != null) { EntityModel.Questionnaire questionnaire = _repQuestionnaire.Get(filter: f => f.QuestionnaireCode == request.QuestionnaireCode).FirstOrDefault(); course.QuestionnaireId = questionnaire.QuestionnaireId; course.Questionnaire = questionnaire; updateCourse = true; } if (!string.IsNullOrWhiteSpace(request.Roaster)) { course.Roaster = request.Roaster; updateCourse = true; } if (updateCourse) { _repCourse.Update(course); } if (request.CourseNewUsers != null) { List <string> roleCodes = request.CourseNewUsers.Select(x => x.roleCode).ToList(); List <string> emailIds = request.CourseNewUsers.Select(x => x.emailId).ToList(); List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList(); foreach (var user in request.CourseNewUsers) { EntityModel.CourseUser cur = new EntityModel.CourseUser() { CourseId = course.CourseId, Course = course, UserId = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id, AspNetUsers = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault(), LastChangedTime = DateTime.UtcNow }; _repCourseUserRole.Add(cur); } } if (request.CourseDeleteUsers != null) { List <string> roleCodes = request.CourseDeleteUsers.Select(x => x.roleCode).ToList(); List <string> emailIds = request.CourseDeleteUsers.Select(x => x.emailId).ToList(); List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList(); foreach (var user in request.CourseDeleteUsers) { string UserId = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id; EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.CourseId == course.CourseId && f.UserId == UserId).FirstOrDefault(); _repCourseUserRole.Delete(cur); } } _uow.Commit(); _courseResponse.addResponse("Update", MessageCodes.InfoSavedSuccessfully, "Course : " + request.CourseCode); return(_courseResponse); }
public GroupSummaryForUser GetGroupSummary(string userEmail, string courseCode) { GroupSummaryForUser gsfu = new GroupSummaryForUser(); AspNetUsers up = _repUserProfile.Get(filter: f => f.Email == userEmail).FirstOrDefault(); Course course = _repCourse.Get(filter: f => f.CourseCode == courseCode, includes: "Groups,CourseUserRoles").FirstOrDefault(); EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.CourseId == course.CourseId && f.UserId == up.Id, includes: "Group").FirstOrDefault(); if (cur.GroupId.HasValue) { gsfu.registeredGroup = new GroupSummary() { GroupCode = cur.Group.GroupCode, GroupName = cur.Group.GroupName, activeTimeZone = cur.Group.TimeZone, Objective = cur.Group.Objective }; } else { gsfu.registeredGroup = null; } List <string> answers = cur.AnswerSet.Split(',').ToList(); gsfu.suggestedGroups = new List <GroupSummary>(); foreach (EntityModel.CourseUser cu in course.CourseUserRoles) { if (cu.UserId != up.Id && !string.IsNullOrWhiteSpace(cu.AnswerSet)) { int matchPercentage = getMatchPercentage(answers, cu.AnswerSet.Split(',').ToList()); if (matchPercentage >= 50) { if (cu.GroupId.HasValue) { if (!cur.GroupId.HasValue || cur.GroupId != cu.GroupId) { Group grp = _repGroup.Get(filter: f => f.GroupId == cu.GroupId).FirstOrDefault(); if (!gsfu.suggestedGroups.Any(x => x.GroupCode == grp.GroupCode)) { gsfu.suggestedGroups.Add(new GroupSummary() { GroupName = grp.GroupName, GroupCode = grp.GroupCode, Objective = grp.Objective, activeTimeZone = grp.TimeZone }); } } } } } } gsfu.AllGroups = new List <GroupSummary>(); foreach (var grp in course.Groups) { if (!cur.GroupId.HasValue || cur.GroupId != grp.GroupId) { gsfu.AllGroups.Add(new GroupSummary() { GroupCode = grp.GroupCode, GroupName = grp.GroupName, Objective = grp.Objective, activeTimeZone = grp.TimeZone }); } } return(gsfu); }