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)); }
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); }