view rank get endpoint for tv series added
This commit is contained in:
@@ -71,5 +71,15 @@ public class SeriesController : ControllerBase
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region View count
|
||||||
|
|
||||||
|
[HttpGet("view")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
[ProducesResponseType(typeof(IEnumerable<SeriesResponse>), StatusCodes.Status200OK)]
|
||||||
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||||
|
public async Task<ActionResult> GetSeriesViewRank([FromQuery] int first = 5, [FromQuery] int days = 7) => await _seriesControllerService.GetSeriesViewRank(first, days);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -10,4 +10,6 @@ public interface ISeriesControllerService
|
|||||||
Task<RequestResult> PostSeries(SeriesRequest data);
|
Task<RequestResult> PostSeries(SeriesRequest data);
|
||||||
Task<RequestResult> PutSeries(long id, SeriesRequest data);
|
Task<RequestResult> PutSeries(long id, SeriesRequest data);
|
||||||
Task<RequestResult> DeleteSeries(long id);
|
Task<RequestResult> DeleteSeries(long id);
|
||||||
|
|
||||||
|
Task<RequestResult> GetSeriesViewRank(int first, int days);
|
||||||
}
|
}
|
||||||
@@ -34,6 +34,8 @@ public class SeriesControllerService : ISeriesControllerService
|
|||||||
|
|
||||||
#region PUBLIC METHODS
|
#region PUBLIC METHODS
|
||||||
|
|
||||||
|
#region Main
|
||||||
|
|
||||||
public async Task<RequestResult> GetAllSeries(SeriesQueryParameters query)
|
public async Task<RequestResult> GetAllSeries(SeriesQueryParameters query)
|
||||||
{
|
{
|
||||||
IEnumerable<SeriesResponse> data = await _database.MediaSeries.Select(x => new SeriesResponse(x)).ToListAsync();
|
IEnumerable<SeriesResponse> data = await _database.MediaSeries.Select(x => new SeriesResponse(x)).ToListAsync();
|
||||||
@@ -132,4 +134,29 @@ public class SeriesControllerService : ISeriesControllerService
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#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