Правки к PR - 1
This commit is contained in:
parent
0ec2e5d99f
commit
fd8bfac6a6
@ -14,37 +14,19 @@ namespace DD.Persistence.API.Controllers;
|
||||
[Route("api/[controller]")]
|
||||
public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
{
|
||||
private readonly IChangeLogRepository repository;
|
||||
private ChangeLogService service { get; }
|
||||
|
||||
/// <summary>
|
||||
/// ctor
|
||||
/// </summary>
|
||||
/// <param name="service"></param>
|
||||
/// <param name="repository"></param>
|
||||
public ChangeLogController(ChangeLogService service, IChangeLogRepository repository)
|
||||
public ChangeLogController(ChangeLogService service)
|
||||
{
|
||||
this.service = service;
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
[HttpPost("{idDiscriminator}")]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.Created)]
|
||||
public async Task<IActionResult> Add(
|
||||
[FromRoute] Guid idDiscriminator,
|
||||
[FromBody] ChangeLogValuesDto dto,
|
||||
string comment,
|
||||
CancellationToken token)
|
||||
{
|
||||
var userId = User.GetUserId<Guid>();
|
||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment, [dto]);
|
||||
var result = await service.AddRange(idDiscriminator, changeLogCommit, token);
|
||||
|
||||
return CreatedAtAction(nameof(Add), result);
|
||||
}
|
||||
|
||||
[HttpPost("range/{idDiscriminator}")]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.Created)]
|
||||
public async Task<IActionResult> AddRange(
|
||||
[FromRoute] Guid idDiscriminator,
|
||||
[FromBody] IEnumerable<ChangeLogValuesDto> dtos,
|
||||
@ -60,17 +42,6 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
|
||||
[HttpDelete]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.OK)]
|
||||
public async Task<IActionResult> Delete(Guid id, string comment, CancellationToken token)
|
||||
{
|
||||
var userId = User.GetUserId<Guid>();
|
||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment, Enumerable.Empty<ChangeLogValuesDto>());
|
||||
var result = await service.MarkAsDeleted([id], changeLogCommit, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[HttpDelete("range")]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.OK)]
|
||||
public async Task<IActionResult> DeleteRange(IEnumerable<Guid> ids, string comment, CancellationToken token)
|
||||
{
|
||||
var userId = User.GetUserId<Guid>();
|
||||
@ -96,20 +67,6 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
|
||||
[HttpPut]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.OK)]
|
||||
public async Task<IActionResult> Update(
|
||||
ChangeLogValuesDto dto,
|
||||
string comment,
|
||||
CancellationToken token)
|
||||
{
|
||||
var userId = User.GetUserId<Guid>();
|
||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment, [dto]);
|
||||
var result = await service.UpdateRange(changeLogCommit, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[HttpPut("range")]
|
||||
[ProducesResponseType(typeof(int), (int)HttpStatusCode.OK)]
|
||||
public async Task<IActionResult> UpdateRange(
|
||||
IEnumerable<ChangeLogValuesDto> dtos,
|
||||
string comment,
|
||||
@ -130,7 +87,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
CancellationToken token)
|
||||
{
|
||||
var moment = new DateTimeOffset(3000, 1, 1, 0, 0, 0, TimeSpan.Zero);
|
||||
var result = await repository.GetByDate(idDiscriminator, moment, paginationRequest, token);
|
||||
var result = await service.GetByDate(idDiscriminator, moment, paginationRequest, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@ -143,7 +100,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
[FromQuery] PaginationRequest paginationRequest,
|
||||
CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetByDate(idDiscriminator, moment, paginationRequest, token);
|
||||
var result = await service.GetByDate(idDiscriminator, moment, paginationRequest, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@ -157,7 +114,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
DateTimeOffset dateEnd,
|
||||
CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetChangeLogForInterval(idDiscriminator, dateBegin, dateEnd, token);
|
||||
var result = await service.GetChangeLogForInterval(idDiscriminator, dateBegin, dateEnd, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@ -167,7 +124,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
[ProducesResponseType((int)HttpStatusCode.NoContent)]
|
||||
public async Task<IActionResult> GetDatesChange([FromRoute] Guid idDiscriminator, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetDatesChange(idDiscriminator, token);
|
||||
var result = await service.GetDatesChange(idDiscriminator, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@ -177,7 +134,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
[ProducesResponseType((int)HttpStatusCode.NoContent)]
|
||||
public async Task<ActionResult<IEnumerable<ChangeLogValuesDto>>> GetPart([FromRoute] Guid idDiscriminator, DateTimeOffset dateBegin, int take = 86400, CancellationToken token = default)
|
||||
{
|
||||
var result = await repository.GetGtDate(idDiscriminator, dateBegin, token);
|
||||
var result = await service.GetGtDate(idDiscriminator, dateBegin, token);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
@ -187,7 +144,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
[ProducesResponseType((int)HttpStatusCode.NoContent)]
|
||||
public async Task<ActionResult<DatesRangeDto>> GetDatesRangeAsync([FromRoute] Guid idDiscriminator, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetDatesRange(idDiscriminator, token);
|
||||
var result = await service.GetDatesRange(idDiscriminator, token);
|
||||
|
||||
if (result is null)
|
||||
return NoContent();
|
||||
|
@ -1,6 +1,9 @@
|
||||
using DD.Persistence.Models.Requests;
|
||||
using DD.Persistence.Models.Common;
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Models.Requests;
|
||||
using DD.Persistence.Repositories;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using DD.Persistence.Database.Entity;
|
||||
|
||||
namespace DD.Persistence.API.Services;
|
||||
|
||||
@ -115,4 +118,78 @@ public class ChangeLogService
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение актуальных записей на определенный момент времени (с пагинацией)
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="momentUtc"></param>
|
||||
/// <param name="paginationRequest"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PaginationContainer<ChangeLogValuesDto>> GetByDate(
|
||||
Guid idDiscriminator,
|
||||
DateTimeOffset momentUtc,
|
||||
PaginationRequest paginationRequest,
|
||||
CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetByDate(idDiscriminator, momentUtc, paginationRequest, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение измененных записей за период времени
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="dateBegin"></param>
|
||||
/// <param name="dateEnd"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IEnumerable<ChangeLogDto>> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetChangeLogForInterval(idDiscriminator, dateBegin, dateEnd, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени)
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IEnumerable<DateOnly>> GetDatesChange(Guid idDiscriminator, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetDatesChange(idDiscriminator, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получить данные, начиная с определенной даты
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="dateBegin"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IEnumerable<ChangeLogValuesDto>> GetGtDate(Guid idDiscriminator, DateTimeOffset dateBegin, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetGtDate(idDiscriminator, dateBegin, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получить диапазон дат, для которых есть данные в репозитории
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<DatesRangeDto?> GetDatesRange(Guid idDiscriminator, CancellationToken token)
|
||||
{
|
||||
var result = await repository.GetDatesRange(idDiscriminator, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -48,16 +48,6 @@ public interface IChangeLogApi : ISyncWithDiscriminatorApi<ChangeLogValuesDto>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> GetChangeLogForDate(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить одну запись
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="comment">комментарий</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> Add(Guid idDiscriminator, ChangeLogValuesDto dto, string comment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить несколько записей
|
||||
/// </summary>
|
||||
@ -68,15 +58,6 @@ public interface IChangeLogApi : ISyncWithDiscriminatorApi<ChangeLogValuesDto>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> AddRange(Guid idDiscriminator, IEnumerable<ChangeLogValuesDto> dtos, string comment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Обновить одну запись
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="comment"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> Update(ChangeLogValuesDto dto, string comment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Обновить несколько записей
|
||||
/// </summary>
|
||||
@ -86,15 +67,6 @@ public interface IChangeLogApi : ISyncWithDiscriminatorApi<ChangeLogValuesDto>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> UpdateRange(IEnumerable<ChangeLogValuesDto> dtos, string comment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить одну запись
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="comment">комментарий к удалению</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IActionResult> Delete(Guid id, string comment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить несколько записей
|
||||
/// </summary>
|
||||
|
Loading…
Reference in New Issue
Block a user