diff --git a/DD.Persistence.API/Controllers/ChangeLogController.cs b/DD.Persistence.API/Controllers/ChangeLogController.cs index e4d1c09..ef5b268 100644 --- a/DD.Persistence.API/Controllers/ChangeLogController.cs +++ b/DD.Persistence.API/Controllers/ChangeLogController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using DD.Persistence.Models; using DD.Persistence.Models.Requests; @@ -174,4 +174,44 @@ public class ChangeLogController : ControllerBase, IChangeLogApi return Ok(result); } + + /// + /// Метод, который возвращает статистику по количеству изменений в разрезе дней + /// + /// + /// + /// + [HttpGet("statistics/changes-count")] + public async Task>> GetStatisticsCountAsync([FromQuery] StatisticsChangeLogRequest request, CancellationToken token) + { + var result = new List() { + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-60), ChangesCount = 10}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-50), ChangesCount = 2}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-25), ChangesCount = 560}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-2), ChangesCount = 78}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-1), ChangesCount = 39}, + }; + + return Ok(result); + } + + /// + /// Метод, который возвращает историю изменений в разрезе дней + /// + /// + /// + /// + [HttpGet("history")] + public async Task> GetHistoryAsync([FromQuery] StatisticsChangeLogRequest request, CancellationToken token) + { + var result = new List() { + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-60), ChangesCount = 10}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-50), ChangesCount = 2}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-25), ChangesCount = 560}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-2), ChangesCount = 78}, + new() { DateTime = DateTimeOffset.UtcNow.AddDays(-1), ChangesCount = 39}, + }; + + return Ok(result); + } } diff --git a/DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs b/DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs new file mode 100644 index 0000000..7d632be --- /dev/null +++ b/DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DD.Persistence.Models.Requests; + +/// +/// Запрос, используемый для получения статистики по журналу операций +/// +public class StatisticsChangeLogRequest +{ + /// + /// + /// + public Guid DiscriminatorId { get; set; } + + /// + /// Пользователь + /// + public Guid UserId { get; set; } +} diff --git a/DD.Persistence.Models/StatisticsChangeLogDto.cs b/DD.Persistence.Models/StatisticsChangeLogDto.cs new file mode 100644 index 0000000..f8ab537 --- /dev/null +++ b/DD.Persistence.Models/StatisticsChangeLogDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DD.Persistence.Models; + +/// +/// Модель, необходимая для отображения статистики по журналу изменений +/// +public class StatisticsChangeLogDto +{ + /// + /// Дата и время изменений + /// + public DateTimeOffset DateTime { get; set; } + + /// + /// Количество изменений + /// + public int ChangesCount { get; set; } +}