Пример #1
0
        public async Task <ActionResult <VideoTimelineResponse> > IsSaw(
            int user_id,
            string video_id)
        {
            var videoViewPercentage = await _generalSettingsRepository.GetVideoViewPercentage();

            var result = await _videoTimelineRepository.IsSawAsync(
                user_id,
                video_id,
                videoViewPercentage);

            var videoTimelineResponse = new VideoTimelineResponse
            {
                Result = result
            };

            return(new ActionResult <VideoTimelineResponse>(videoTimelineResponse));
        }
Пример #2
0
        public async Task <ActionResult <SurveyDetailResponse> > GetQuestionary(int id, string user_id)
        {
            var item = await _surveyRepository.GetAsync(id);

            //var au = Request.Headers.FirstOrDefault(o => o.Key == "Authorization");
            //var aus = au.Value.ToString().Replace("Bearer ", "");


            //var userId = user_id;// GetUserId();
            User user = null;

            if (!string.IsNullOrEmpty(user_id) && Int32.TryParse(user_id, out int _user_id))
            {
                user = await _userRepository.GetAsync(_user_id);
            }

            if (item == null)
            {
                return(NotFound());
            }

            //var comments = new List<Comment>();
            //item?.Survey?.SurveyComment?.ToList().ForEach(
            //    c => comments.Add(
            //        new Comment
            //        {
            //            Id = c.Id,
            //            IsMine = c.User?.Email == GetUserId(),
            //            CommentAt = c.CreatedAt,
            //            Nick = c.User?.Nick,
            //            Text = c.Text
            //        })
            //);
            var questionaries = new List <Dto.Survey.Questionary>();
            //var answers = item.Survey.SurveyUser;
            List <UserQuestionAnswer> answers = null;

            if (user != null && user.SurveyUsers != null && user.SurveyUsers.FirstOrDefault(p => p.SurveyId == id) != null)
            {
                answers = await _userQuestionRepository.GetAsync(user.SurveyUsers.FirstOrDefault(p => p.SurveyId == id).Id);
            }

            item?.Survey?.Questionary?.ToList().ForEach(
                c => questionaries.Add(
                    new Dto.Survey.Questionary
            {
                Id         = c.Id,
                Question   = c.Question,
                Answer     = c.RightAnswer,
                IsAnswered = answers?.Any(p => p.QuestionaryID == c.Id)
                             //user?.SurveyUsers?.First(p => p.SurveyId == id).UserQuestionAnswer.Any(p => p.QuestionaryID == c.Id)
                             //item.Survey.Questionary.Any( p => p.Id == c.Id && answers.Any(s => s.QuestionaryID == p.Id))
            })
                );
            var users = new List <UserResponse>();

            item?.SurveyUsers?.ToList().ForEach(
                c => users.Add(
                    new UserResponse
            {
                Id          = c.UserId,
                CompletedAt = c.FinishDate,
                Nickname    = c.User.Nick,
                Surname     = c.User.Surname,
                Name        = c.User.Name
            })
                );

            var videoLink = item.Survey?.AdditionalInfo?.LinkToVideo;

            bool is_video_watched = false;

            if (!string.IsNullOrEmpty(videoLink) && user != null)
            {
                var user_id2 = user.Id;
                var video_id = Youtube.ExtractVideoIdFromUri(new Uri(videoLink));
                if (!string.IsNullOrEmpty(video_id))
                {
                    var videoViewPercentage = await _generalSettingsRepository.GetVideoViewPercentage();

                    is_video_watched = await _videoTimelineRepository.IsSawAsync(user_id2, video_id, videoViewPercentage);
                }
            }

            var surveyItem = new SurveyItem
            {
                Id                     = item.Survey.Id,
                Title                  = item.Survey.Title,
                Description            = item.Survey.Text,
                TimeForCompleting      = item.Survey.NeedToBeFinishedFor,
                TimeForCompletingStart = item.Survey.NeedToBeFinishedForStart,
                IsLiked                = item.Survey.Likes != null &&
                                         item.Survey.Likes.FirstOrDefault(m => m.User?.Email == user?.Email) != null,
                Score          = item.Survey.Score,
                CurrentCnt     = item.Survey.NumberOfUser,
                LimitCnt       = item.Survey.Limit,
                link           = item.Survey?.AdditionalInfo?.LinkToSite,
                linkVideo      = videoLink,
                IsVideoWatched = is_video_watched,
            };

            var detail = new SurveyDetailResponse
            {
                //Comments = comments,
                Questionaries = questionaries,
                SurveyItem    = surveyItem,
                Users         = users,
            };

            return(detail);
        }