Hi
In below code i want data to be ordered by PublishedAT
var client = new RestClient("googleapis.com/youtube/v3");
var request = new RestRequest("search", Method.Get);
request.AddParameter("part", "snippet");
request.AddParameter("q", "sports shorts");
request.AddParameter("type", "video");
request.AddParameter("maxResults", 50);
request.AddParameter("order", "viewCount");
request.AddParameter("videoDuration", "short");
var today = DateTime.Now.Date;
var sevenDaysAgo = today.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ssZ");
request.AddParameter("publishedAfter", sevenDaysAgo);
request.AddParameter("key", "API_KEY");
var response = client.Execute(request);
List listVideo = new List();
foreach (var data in response.Data?.items)
{
var clientTag = new RestClient("googleapis.com/youtube/v3/");
var tagRequest = new RestRequest("videos", Method.Get);
tagRequest.AddParameter("key", "API_KEY");
tagRequest.AddParameter("part", "snippet,statistics");
tagRequest.AddParameter("maxResults", 100);
request.AddParameter("order", "viewCount");
tagRequest.AddParameter("id", data.id.videoId);
var tagResponse = clientTag.Execute(tagRequest);
foreach (var item in tagResponse.Data.items)
{
Console.WriteLine("viewCount" + item.statistics.viewCount);
Console.WriteLine("likeCount" + item.statistics.likeCount);
Console.WriteLine("commentCount" + item.statistics.commentCount);
var categoryId = item.snippet.categoryId;
var clientCategory = new RestClient("googleapis.com/youtube/v3/");
var categoryRequest = new RestRequest("videoCategories", Method.Get);
categoryRequest.AddParameter("key", "ApiKey8");
categoryRequest.AddParameter("part", "snippet");
categoryRequest.AddParameter("id", categoryId);
var categoryResponse = clientCategory.Execute(categoryRequest);
if (categoryResponse.Data?.Items != null)
{
Console.WriteLine("CtegoryName " + categoryResponse.Data.Items[0].Snippet.Title);
}
}
}
Thanks
Ramco RamcoPosted Feb 22, 2023, 7:01 AM
Hi Naimish
Till this line data is o.k . It shows in ascending order in orderByPublishAt. Why in actual output it shows awkward results
In orderByPublishAt it shows correctly.
foreach (var data in orderByPublishAt)
{
Thanks
Naimish MakwanaPosted Feb 22, 2023, 5:51 AM
Hello Ramco,
Refer this link.
https://www.c-sharpcorner.com/forums/views-by-descending-order
Here we have done order by Views. Try to implement similar and change the Order by listVideo.OrderByDescending(x => x.statistics.viewCount);
to
listVideo.OrderBy(x => x.snippet.publishedAt);
Thanks
Naimish Makwana
Ramco RamcoPosted Feb 22, 2023, 5:18 AM
Hi
Written this but still nor ordering
request.AddParameter("order", "date");
Thanks
Naimish MakwanaPosted Feb 22, 2023, 5:07 AM
Hello Ramco,
Add order by in parameter.
Thanks
Naimish
Ramco RamcoPosted Feb 22, 2023, 4:59 AM
it is Datetime
Below r the Classes
Thanks
Naimish MakwanaPosted Feb 22, 2023, 4:54 AM
Hello Ramco,
What is the datatype of publishedAt field in your model?
if it is string then change it to.
Thanks
Naimish Makwana
Ramco RamcoPosted Feb 22, 2023, 4:51 AM
Hi Naimish
Still not working. Secondly since we have orderby in beginning then why we need second time
Thanks
Naimish MakwanaPosted Feb 22, 2023, 4:35 AM
Hello Ramco,
Also add order by in tagResponse
Thanks
Naimish Makwana
Ramco RamcoPosted Feb 22, 2023, 4:30 AM
Hi Naimish
It is not working.
Thanks
Naimish MakwanaPosted Feb 22, 2023, 4:18 AM
Hello Ramco,
try below code:
Thanks
Naimish Makwana