fix/mock-methods-for-change-log #27
@ -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,87 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод, который возвращает статистику по количеству изменений в разрезе дней
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("statistics")]
|
||||
public async Task<ActionResult<IEnumerable<StatisticsChangeLogDto>>> GetStatisticsCountAsync([FromQuery] ChangeLogRequest request, CancellationToken token)
|
||||
{
|
||||
var result = new List<StatisticsChangeLogDto>() {
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод, который возвращает историю изменений в разрезе дней
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("history")]
|
||||
public async Task<ActionResult<IEnumerable<HistoryChangeLogDto>>> HistoryChangeLogAsync([FromQuery] ChangeLogRequest request, CancellationToken token)
|
||||
{
|
||||
var userId = Guid.CreateVersion7();
|
||||
var changeLogItemCurrentId = Guid.CreateVersion7();
|
||||
|
||||
var changeLogItemCreation = DateTimeOffset.UtcNow;
|
||||
var changeLogItems = new List<ChangeLogDto>()
|
||||
{
|
||||
new ChangeLogDto()
|
||||
{
|
||||
Id = changeLogItemCurrentId,
|
||||
Creation = changeLogItemCreation,
|
||||
IdAuthor = userId,
|
||||
IdEditor = userId,
|
||||
Obsolete = null,
|
||||
Value = new ChangeLogValuesDto(){
|
||||
Id = Guid.CreateVersion7(),
|
||||
Value = new Dictionary<string, object>() {
|
||||
["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<string, object>() {
|
||||
["1"] = new { id = 1, caption = "Изменение 1" },
|
||||
["2"] = new { id = 2, caption = "Изменение 2" },
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var result = new List<HistoryChangeLogDto>() {
|
||||
new() {
|
||||
Comment = "Петров И. Ю. попросил внести изменения",
|
||||
ng.frolov
commented
Дата тут и дата в 214 строке будут отличаться, это приведет к плавающему багу из-за округления. Дата тут и дата в 214 строке будут отличаться, это приведет к плавающему багу из-за округления.
Просто сделай локальную переменную с датой в начале метода и используй её
|
||||
DateTime = changeLogItemCreation,
|
||||
DiscriminatorId = Guid.CreateVersion7(),
|
||||
User = new UserDto()
|
||||
{
|
||||
Id = userId,
|
||||
DisplayName = "Иванов И. И"
|
||||
},
|
||||
ChangeLogItems = changeLogItems
|
||||
},
|
||||
};
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
}
|
||||
|
32
DD.Persistence.Models/HistoryChangeLogDto.cs
Normal file
32
DD.Persistence.Models/HistoryChangeLogDto.cs
Normal file
@ -0,0 +1,32 @@
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Модель, необходимая для отображения истории по журналу изменений
|
||||
/// </summary>
|
||||
public class HistoryChangeLogDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата и время изменений
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь, совершивший изменение данных
|
||||
/// </summary>
|
||||
public required UserDto User { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Проект, с которым связаны изменения
|
||||
/// </summary>
|
||||
public Guid DiscriminatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Список изменений
|
||||
/// </summary>
|
||||
public required IEnumerable<ChangeLogDto> ChangeLogItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Комментарий к изменению
|
||||
/// </summary>
|
||||
public required string Comment { get; set; }
|
||||
}
|
17
DD.Persistence.Models/Requests/ChangeLogRequest.cs
Normal file
17
DD.Persistence.Models/Requests/ChangeLogRequest.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace DD.Persistence.Models.Requests;
|
||||
|
||||
/// <summary>
|
||||
/// Запрос, используемый для получения данных по журналу операций
|
||||
/// </summary>
|
||||
public class ChangeLogRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// Дискриминатор задачи
|
||||
/// </summary>
|
||||
public Guid DiscriminatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
}
|
23
DD.Persistence.Models/StatisticsChangeLogDto.cs
Normal file
23
DD.Persistence.Models/StatisticsChangeLogDto.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Модель, необходимая для отображения статистики по журналу изменений
|
||||
/// </summary>
|
||||
public class StatisticsChangeLogDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата и время изменений
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Количество изменений
|
||||
/// </summary>
|
||||
public int ChangesCount { get; set; }
|
||||
}
|
23
DD.Persistence.Models/UserDto.cs
Normal file
23
DD.Persistence.Models/UserDto.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DD.Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Класс, описывающий пользователя
|
||||
/// </summary>
|
||||
public class UserDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор пользователя
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Имя пользователя для отображения
|
||||
/// </summary>
|
||||
public required string DisplayName { get; set; }
|
||||
}
|
Loading…
Reference in New Issue
Block a user
👍