/// <summary> /// Gets a page of the latest comments for a video. /// </summary> public override async Task <GetVideoCommentsResponse> GetVideoComments(GetVideoCommentsRequest request, ServerCallContext context) { PreparedStatement prepared; IStatement bound; Guid?startingCommentId = request.StartingCommentId?.ToGuid(); Guid videoId = request.VideoId.ToGuid(); if (startingCommentId == null) { prepared = await _statementCache.GetOrAddAsync( "SELECT commentid, userid, comment, dateOf(commentid) AS comment_timestamp FROM comments_by_video WHERE videoid = ?"); bound = prepared.Bind(videoId); } else { prepared = await _statementCache.GetOrAddAsync( "SELECT commentid, userid, comment, dateOf(commentid) AS comment_timestamp FROM comments_by_video WHERE videoid = ? AND commentid <= ?"); bound = prepared.Bind(videoId, startingCommentId); } bound.SetAutoPage(false) .SetPageSize(request.PageSize); if (string.IsNullOrEmpty(request.PagingState) == false) { bound.SetPagingState(Convert.FromBase64String(request.PagingState)); } RowSet rows = await _session.ExecuteAsync(bound).ConfigureAwait(false); var response = new GetVideoCommentsResponse { VideoId = request.VideoId, PagingState = rows.PagingState != null?Convert.ToBase64String(rows.PagingState) : "" }; response.Comments.Add(rows.Select(MapRowToVideoComment)); return(response); }
/// <summary> /// Возвращает список комментариев к видеозаписи с расширенной информацией. /// </summary> /// <param name="callback">Метод, который будет вызван по завершении операции. /// Параметр является результатом запроса.</param> /// <param name="request">Объект запроса с необходимыми параметрами.</param> public void GetCommentsExtended(Action <VKResponse <VKCommentExtendedObject> > callback, GetVideoCommentsRequest request) { request.IsExtended = true; VKHelper.GetResponse <VKCommentExtendedObject>(request, callback); }
/// <summary> /// Возвращает список комментариев к видеозаписи. /// </summary> /// <param name="callback">Метод, который будет вызван по завершении операции. /// Параметр является результатом запроса.</param> /// <param name="request">Объект запроса с необходимыми параметрами.</param> public void GetComments(Action <VKResponse <VKCountedItemsObject <VKComment> > > callback, GetVideoCommentsRequest request) { VKHelper.GetResponse <VKCountedItemsObject <VKComment> >(request, callback); }