Пример #1
0
        public GetLikeRespond GetLikes(string id, string classRoomId, string lessonId)
        {
            var invalidDataRespond = new GetLikeRespond
            {
                LessonId          = lessonId,
                LikeCommentIds    = Enumerable.Empty <string>(),
                LikeDiscussionIds = Enumerable.Empty <string>()
            };
            var areArgumentsValid = !string.IsNullOrEmpty(id) &&
                                    !string.IsNullOrEmpty(classRoomId) &&
                                    !string.IsNullOrEmpty(lessonId);

            if (!areArgumentsValid)
            {
                return(invalidDataRespond);
            }

            var canAccessToTheClassRoom = _userprofileRepo.CheckAccessPermissionToSelectedClassRoom(id, classRoomId);

            if (!canAccessToTheClassRoom)
            {
                return(invalidDataRespond);
            }

            var now = _dateTime.GetCurrentTime();
            var canAccessToTheClassLesson = _classCalendarRepo.CheckAccessPermissionToSelectedClassLesson(classRoomId, lessonId, now);

            if (!canAccessToTheClassLesson)
            {
                return(invalidDataRespond);
            }

            var likeLessons = _likeLessonRepo.GetLikeLessonsByUserProfileIdAndLesson(id, lessonId);

            if (likeLessons == null)
            {
                return(invalidDataRespond);
            }
            var likeComments = _likeCommentRepo.GetLikeCommentsByUserProfileIdAndLesson(id, lessonId);

            if (likeComments == null)
            {
                return(invalidDataRespond);
            }
            var likeDiscussions = _likeDiscussionRepo.GetLikeDiscussionsByUserProfileIdAndLesson(id, lessonId);

            if (likeDiscussions == null)
            {
                return(invalidDataRespond);
            }

            var likeCommentIds    = likeComments.Where(it => !it.DeletedDate.HasValue).Select(it => it.CommentId).ToList();
            var likeDiscussionIds = likeDiscussions.Where(it => !it.DeletedDate.HasValue).Select(it => it.DiscussionId).ToList();

            return(new GetLikeRespond
            {
                LessonId = lessonId,
                IsLikedLesson = likeLessons.Any(it => !it.DeletedDate.HasValue),
                LikeCommentIds = likeCommentIds,
                LikeDiscussionIds = likeDiscussionIds
            });
        }