public void WhenUserProfileRemoveStudentFromClassRoom(string userprofileId, string removeUserProfileId, string classRoomId) { var mockUserProfileRepo = ScenarioContext.Current.Get<Mock<IUserProfileRepository>>(); mockUserProfileRepo.Setup(it => it.UpsertUserProfile(It.IsAny<UserProfile>())); var mycourseCtrl = ScenarioContext.Current.Get<MyCourseController>(); var body = new RemoveStudentRequest { ClassRoomId = classRoomId, RemoveUserProfileId = removeUserProfileId, UserProfileId = userprofileId }; mycourseCtrl.RemoveStudent(body); }
public void RemoveStudent(RemoveStudentRequest body) { var areArgumentsValid = body != null && !string.IsNullOrEmpty(body.ClassRoomId) && !string.IsNullOrEmpty(body.RemoveUserProfileId) && !string.IsNullOrEmpty(body.UserProfileId); if (!areArgumentsValid) return; UserProfile userprofile; var canAccessToTheClassRoom = _userprofileRepo.CheckAccessPermissionToSelectedClassRoom(body.UserProfileId, body.ClassRoomId, out userprofile); if (!canAccessToTheClassRoom) return; var isTeacherAccount = userprofile.Subscriptions .Any(it => !it.DeletedDate.HasValue && it.ClassRoomId == body.ClassRoomId && it.Role == UserProfile.AccountRole.Teacher); if (!isTeacherAccount) return; var selectedUserProfile = _userprofileRepo.GetUserProfileById(body.RemoveUserProfileId); if (selectedUserProfile == null) return; var selectedSubscriptions = selectedUserProfile.Subscriptions .Where(it => it.ClassRoomId.Equals(body.ClassRoomId)) .Where(it => !it.DeletedDate.HasValue) .Where(it => it.Role == UserProfile.AccountRole.Student); if (!selectedSubscriptions.Any()) return; foreach (var item in selectedSubscriptions) item.DeletedDate = _dateTime.GetCurrentTime(); _userprofileRepo.UpsertUserProfile(selectedUserProfile); var selectedUserActivity = _userActivityRepo.GetUserActivityByUserProfileIdAndClassRoomId(body.RemoveUserProfileId, body.ClassRoomId); if (selectedUserActivity == null) return; selectedUserActivity.DeletedDate = _dateTime.GetCurrentTime(); _userActivityRepo.UpsertUserActivity(selectedUserActivity); }
public void RemoveStudent(RemoveStudentRequest body) { var areArgumentsValid = body != null && !string.IsNullOrEmpty(body.ClassRoomId) && !string.IsNullOrEmpty(body.RemoveUserProfileId) && !string.IsNullOrEmpty(body.UserProfileId); if (!areArgumentsValid) return; UserProfile userprofile; var canAccessToTheClassRoom = _userprofileRepo.CheckAccessPermissionToSelectedClassRoom(body.UserProfileId, body.ClassRoomId, out userprofile); if (!canAccessToTheClassRoom) return; var isTeacherAccount = userprofile.Subscriptions.First(it => it.ClassRoomId == body.ClassRoomId).Role == UserProfile.AccountRole.Teacher; if (!isTeacherAccount) return; var selectedUserProfile = _userprofileRepo.GetUserProfileById(body.RemoveUserProfileId); if (selectedUserProfile == null) return; var selectedSubscription = selectedUserProfile.Subscriptions .Where(it => it.ClassRoomId.Equals(body.ClassRoomId)) .Where(it => !it.DeletedDate.HasValue) .FirstOrDefault(); if (selectedSubscription == null) return; selectedSubscription.DeletedDate = _dateTime.GetCurrentTime(); _userprofileRepo.UpsertUserProfile(selectedUserProfile); }