public void WhenUserProfileIdRemoveTheDiscussionFromCommentInTheLessonOfClassRoom(string userprofileId, string discussionId, string commentId, string lessonId, string classRoomId) { var mockCommentRepo = ScenarioContext.Current.Get<Mock<ICommentRepository>>(); mockCommentRepo.Setup(it => it.UpsertComment(It.IsAny<Comment>())); var discussionCtrl = ScenarioContext.Current.Get<DiscussionController>(); var body = new RemoveDiscussionRequest { ClassRoomId = classRoomId, LessonId = lessonId, CommentId = commentId, UserProfileId = userprofileId }; discussionCtrl.Put(discussionId, body); }
// PUT: api/discussion/{discusion-id} public void Put(string id, RemoveDiscussionRequest body) { var areArgumentsValid = !string.IsNullOrEmpty(id) && body != null && !string.IsNullOrEmpty(body.ClassRoomId) && !string.IsNullOrEmpty(body.CommentId) && !string.IsNullOrEmpty(body.LessonId) && !string.IsNullOrEmpty(body.UserProfileId); if (!areArgumentsValid) return; UserProfile userprofile; var canAccessToTheClassRoom = checkAccessPermissionToSelectedClassRoom(body.UserProfileId, body.ClassRoomId, out userprofile); if (!canAccessToTheClassRoom) return; var now = _dateTime.GetCurrentTime(); var canAccessToTheClassLesson = checkAccessPermissionToSelectedClassLesson(body.ClassRoomId, body.LessonId, now); if (!canAccessToTheClassLesson) return; var selectedComment = _commentRepo.GetCommentById(body.CommentId); if (selectedComment == null) return; var selectedDiscussion = selectedComment.Discussions.FirstOrDefault(it => it.id.Equals(id, StringComparison.CurrentCultureIgnoreCase)); if (selectedDiscussion == null) return; var canDeleteTheDiscussion = selectedComment.CreatedByUserProfileId.Equals(body.UserProfileId, StringComparison.CurrentCultureIgnoreCase) || selectedDiscussion.CreatedByUserProfileId.Equals(body.UserProfileId, StringComparison.CurrentCultureIgnoreCase); if (!canDeleteTheDiscussion) return; selectedDiscussion.DeletedDate = now; _commentRepo.UpsertComment(selectedComment); }