From 2ab8101258a14056929e83266b64c58d6ecbe338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D1=8F=20=D0=91=D0=B8=D0=B7=D1=8E=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0?= Date: Thu, 6 Feb 2025 16:57:13 +0500 Subject: [PATCH] =?UTF-8?q?Moq-=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BA=D0=B8=20=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B6=D1=83=D1=80=D0=BD=D0=B0=D0=BB=D0=B0=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ChangeLogController.cs | 60 ++++++++++++++++--- DD.Persistence.Models/HistoryChangeLogDto.cs | 26 ++------ ...hangeLogRequest.cs => ChangeLogRequest.cs} | 14 ++--- DD.Persistence.Models/UserDto.cs | 23 +++++++ 4 files changed, 83 insertions(+), 40 deletions(-) rename DD.Persistence.Models/Requests/{StatisticsChangeLogRequest.cs => ChangeLogRequest.cs} (51%) create mode 100644 DD.Persistence.Models/UserDto.cs diff --git a/DD.Persistence.API/Controllers/ChangeLogController.cs b/DD.Persistence.API/Controllers/ChangeLogController.cs index ef5b268..107ff53 100644 --- a/DD.Persistence.API/Controllers/ChangeLogController.cs +++ b/DD.Persistence.API/Controllers/ChangeLogController.cs @@ -181,8 +181,8 @@ public class ChangeLogController : ControllerBase, IChangeLogApi /// /// /// - [HttpGet("statistics/changes-count")] - public async Task>> GetStatisticsCountAsync([FromQuery] StatisticsChangeLogRequest request, CancellationToken token) + [HttpGet("statistics")] + public async Task>> GetStatisticsCountAsync([FromQuery] ChangeLogRequest request, CancellationToken token) { var result = new List() { new() { DateTime = DateTimeOffset.UtcNow.AddDays(-60), ChangesCount = 10}, @@ -202,14 +202,56 @@ public class ChangeLogController : ControllerBase, IChangeLogApi /// /// [HttpGet("history")] - public async Task> GetHistoryAsync([FromQuery] StatisticsChangeLogRequest request, CancellationToken token) + public async Task> HistoryChangeLogDto([FromQuery] ChangeLogRequest 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}, + var userId = Guid.CreateVersion7(); + var changeLogItemCurrentId = Guid.CreateVersion7(); + var changeLogItems = new List() + { + new ChangeLogDto() + { + Id = changeLogItemCurrentId, + Creation = DateTimeOffset.UtcNow, + IdAuthor = userId, + IdEditor = userId, + Obsolete = null, + Value = new ChangeLogValuesDto(){ + Id = Guid.CreateVersion7(), + Value = new Dictionary() { + ["1"] = new { id = 1, caption = "Изменение 1 (c правкой)" }, + ["2"] = new { id = 2, caption = "Изменение 2 (с правкой)" }, + } + } + }, + new ChangeLogDto() + { + Id = Guid.CreateVersion7(), + Creation = DateTimeOffset.UtcNow.AddDays(-10), + IdAuthor = userId, + IdEditor = userId, + IdNext = changeLogItemCurrentId, + Obsolete = DateTimeOffset.UtcNow.AddDays(-5), + Value = new ChangeLogValuesDto(){ + Id = Guid.CreateVersion7(), + Value = new Dictionary() { + ["1"] = new { id = 1, caption = "Изменение 1" }, + ["2"] = new { id = 2, caption = "Изменение 2" }, + } + } + } + }; + var result = new List() { + new() { + Comment = "Петров И. Ю. попросил внести изменения", + DateTime = DateTimeOffset.UtcNow, + DiscriminatorId = Guid.CreateVersion7(), + User = new UserDto() + { + Id = userId, + DisplayName = "Иванов И. И" + }, + ChangeLogItems = changeLogItems + }, }; return Ok(result); diff --git a/DD.Persistence.Models/HistoryChangeLogDto.cs b/DD.Persistence.Models/HistoryChangeLogDto.cs index 92d3baa..748310e 100644 --- a/DD.Persistence.Models/HistoryChangeLogDto.cs +++ b/DD.Persistence.Models/HistoryChangeLogDto.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DD.Persistence.Models; +namespace DD.Persistence.Models; /// /// Модель, необходимая для отображения истории по журналу изменений @@ -19,7 +13,7 @@ public class HistoryChangeLogDto /// /// Пользователь, совершивший изменение данных /// - public Guid UserId { get; set; } + public required UserDto User { get; set; } /// /// Проект, с которым связаны изменения @@ -27,22 +21,12 @@ public class HistoryChangeLogDto public Guid DiscriminatorId { get; set; } /// - /// Количество измененных строк + /// Список изменений /// - public int RowsChangesCount { get; set; } - - /// - /// Изменения на предшествующую дату - /// - public required IEnumerable ChangeLogItemsByPreviousDate { get; set; } - - /// - /// Изменения на текущую дату - /// - public required IEnumerable ChangeLogItemsByCurrentDate { get; set; } + public required IEnumerable ChangeLogItems { get; set; } /// /// Комментарий к изменению /// - public string? Comment { get; set; } + public required string Comment { get; set; } } diff --git a/DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs b/DD.Persistence.Models/Requests/ChangeLogRequest.cs similarity index 51% rename from DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs rename to DD.Persistence.Models/Requests/ChangeLogRequest.cs index 7d632be..59396ff 100644 --- a/DD.Persistence.Models/Requests/StatisticsChangeLogRequest.cs +++ b/DD.Persistence.Models/Requests/ChangeLogRequest.cs @@ -1,18 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DD.Persistence.Models.Requests; +namespace DD.Persistence.Models.Requests; /// -/// Запрос, используемый для получения статистики по журналу операций +/// Запрос, используемый для получения данных по журналу операций /// -public class StatisticsChangeLogRequest +public class ChangeLogRequest { /// - /// + /// Дискриминатор задачи /// public Guid DiscriminatorId { get; set; } diff --git a/DD.Persistence.Models/UserDto.cs b/DD.Persistence.Models/UserDto.cs new file mode 100644 index 0000000..682ccf8 --- /dev/null +++ b/DD.Persistence.Models/UserDto.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 UserDto +{ + /// + /// Идентификатор пользователя + /// + public Guid Id { get; set; } + + /// + /// Имя пользователя для отображения + /// + public required string DisplayName { get; set; } +}