view rank get endpoint for tv series added
This commit is contained in:
@@ -10,4 +10,6 @@ public interface ISeriesControllerService
|
||||
Task<RequestResult> PostSeries(SeriesRequest data);
|
||||
Task<RequestResult> PutSeries(long id, SeriesRequest data);
|
||||
Task<RequestResult> DeleteSeries(long id);
|
||||
|
||||
Task<RequestResult> GetSeriesViewRank(int first, int days);
|
||||
}
|
||||
@@ -34,6 +34,8 @@ public class SeriesControllerService : ISeriesControllerService
|
||||
|
||||
#region PUBLIC METHODS
|
||||
|
||||
#region Main
|
||||
|
||||
public async Task<RequestResult> GetAllSeries(SeriesQueryParameters query)
|
||||
{
|
||||
IEnumerable<SeriesResponse> data = await _database.MediaSeries.Select(x => new SeriesResponse(x)).ToListAsync();
|
||||
@@ -132,4 +134,29 @@ public class SeriesControllerService : ISeriesControllerService
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region View count
|
||||
|
||||
public async Task<RequestResult> GetSeriesViewRank(int first, int days)
|
||||
{
|
||||
if (first < 1 || days < 1)
|
||||
{
|
||||
return RequestResult.BadRequest();
|
||||
}
|
||||
|
||||
DateOnly startDate = DateOnly.FromDateTime(DateTime.Now).AddDays(-days);
|
||||
IEnumerable<MediaSeries> rawData = await _database.MediaSeries.OrderByDescending(x => x.Media.ViewCountsMedia.Where(y => y.Date >= startDate)
|
||||
.Sum(y => y.ViewCount))
|
||||
.ThenBy(x => x.Id)
|
||||
.Take(first)
|
||||
.ToListAsync();
|
||||
|
||||
IEnumerable<SeriesResponse> data = rawData.Select(x => new SeriesResponse(x));
|
||||
|
||||
return RequestResult.Ok(data);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user