Правки по результатам ревью
This commit is contained in:
parent
930c4e8722
commit
a436b839f6
@ -16,7 +16,7 @@ using UuidExtensions;
|
||||
[Route("api/[controller]")]
|
||||
public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
{
|
||||
private ChangeLogService service { get; }
|
||||
private readonly ChangeLogService service;
|
||||
|
||||
/// <summary>
|
||||
/// ctor
|
||||
@ -40,7 +40,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
||||
public async Task<IActionResult> AddRange(
|
||||
[FromRoute] Guid idDiscriminator,
|
||||
[FromBody] IEnumerable<ChangeLogValuesDto> dtos,
|
||||
string comment,
|
||||
string? comment,
|
||||
CancellationToken token)
|
||||
{
|
||||
var userId = User.GetUserId<Guid>();
|
||||
|
@ -1,9 +1,8 @@
|
||||
using DD.Persistence.Models.Common;
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Models.Common;
|
||||
using DD.Persistence.Models.Requests;
|
||||
using DD.Persistence.Repositories;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using DD.Persistence.Database.Entity;
|
||||
|
||||
namespace DD.Persistence.API.Services;
|
||||
|
||||
@ -34,39 +33,38 @@ public class ChangeLogService
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Чтение ключа коммита из кеша или (если коммита в кеше нет) создание коммита
|
||||
/// Чтение или создание нового коммита
|
||||
/// </summary>
|
||||
/// <param name="commitDto"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<Guid> GetOrCreateCommitAsync(CreateChangeLogCommitRequest commitDto, CancellationToken token)
|
||||
private async Task<ChangeLogCommitDto> GetOrCreateCommitAsync(CreateChangeLogCommitRequest request, CancellationToken token)
|
||||
{
|
||||
var key = (commitDto.IdAuthor, commitDto.Comment);
|
||||
var commitId = await memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
|
||||
var key = (request.IdAuthor, request.Comment);
|
||||
var commit = await memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
|
||||
{
|
||||
cacheEntry.AbsoluteExpirationRelativeToNow = AbsoluteExpirationRelativeToNow;
|
||||
|
||||
var commitId = await commitRepository.Add(commitDto, token);
|
||||
var commit = await commitRepository.Add(request, token);
|
||||
|
||||
return commitId;
|
||||
return commit;
|
||||
});
|
||||
return commitId;
|
||||
return commit!;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавление записи в журнал изменений
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="commitRequestDto"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> AddRange(Guid idDiscriminator, CreateChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
public async Task<int> AddRange(Guid idDiscriminator, CreateChangeLogCommitRequest request, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
{
|
||||
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||
var commit = await GetOrCreateCommitAsync(request, token);
|
||||
|
||||
var result = await repository.AddRange(idDiscriminator, commitDto, dtos, token);
|
||||
var result = await repository.AddRange(idDiscriminator, commit, dtos, token);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -74,15 +72,14 @@ public class ChangeLogService
|
||||
/// Пометить запись журнала изменений как удаленную
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <param name="commitRequestDto"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> MarkAsDeleted(IEnumerable<Guid> ids, CreateChangeLogCommitRequest commitRequestDto, CancellationToken token)
|
||||
public async Task<int> MarkAsDeleted(IEnumerable<Guid> ids, CreateChangeLogCommitRequest request, CancellationToken token)
|
||||
{
|
||||
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||
var commit = await GetOrCreateCommitAsync(request, token);
|
||||
|
||||
var result = await repository.MarkAsDeleted(commitId, ids, commitDto.Creation, token);
|
||||
var result = await repository.MarkAsDeleted(ids, commit, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -91,16 +88,15 @@ public class ChangeLogService
|
||||
/// Очистить старые и добавить новые записи в журнал изменений
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator"></param>
|
||||
/// <param name="commitRequestDto"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> ClearAndAddRange(Guid idDiscriminator, CreateChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
public async Task<int> ClearAndAddRange(Guid idDiscriminator, CreateChangeLogCommitRequest request, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
{
|
||||
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||
var commit = await GetOrCreateCommitAsync(request, token);
|
||||
|
||||
var result = await repository.ClearAndAddRange(idDiscriminator, commitDto, dtos, token);
|
||||
var result = await repository.ClearAndAddRange(idDiscriminator, commit, dtos, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -108,16 +104,14 @@ public class ChangeLogService
|
||||
/// <summary>
|
||||
/// Обновить записи в журнале изменений
|
||||
/// </summary>
|
||||
/// <param name="commitRequestDto"></param>
|
||||
/// <param name="commitRequest"></param>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<int> UpdateRange(CreateChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
public async Task<int> UpdateRange(CreateChangeLogCommitRequest commitRequest, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||
{
|
||||
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||
|
||||
var result = await repository.UpdateRange(commitDto, dtos, token);
|
||||
var commit = await GetOrCreateCommitAsync(commitRequest, token);
|
||||
var result = await repository.UpdateRange(commit, dtos, token);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
using DD.Persistence.Database.EntityAbstractions;
|
||||
using DD.Persistence.ModelsAbstractions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
@ -19,9 +18,15 @@ public class ChangeLog : IDiscriminatorItem, IChangeLog
|
||||
[Comment("Дискриминатор таблицы")]
|
||||
public Guid DiscriminatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// то же самое поле присутствует в связанной таблице change_log_commit (поле creation)
|
||||
/// </summary>
|
||||
[Comment("Дата создания записи")]
|
||||
public DateTimeOffset Creation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// то же самое поле присутствует в связанной таблице change_log_commit (поле creation)
|
||||
/// </summary>
|
||||
[Comment("Дата устаревания (например при удалении)")]
|
||||
public DateTimeOffset? Obsolete { get; set; }
|
||||
|
||||
@ -37,9 +42,15 @@ public class ChangeLog : IDiscriminatorItem, IChangeLog
|
||||
[Comment("Id коммита на устаревание записи")]
|
||||
public Guid? IdObsoletedCommit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// коммит для актуальной записи
|
||||
/// </summary>
|
||||
[Required, ForeignKey(nameof(IdCreatedCommit)), Comment("Коммит пользователя на создание записи")]
|
||||
public virtual ChangeLogCommit CreatedCommit { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// коммит для устаревшей записи
|
||||
/// </summary>
|
||||
[ForeignKey(nameof(IdObsoletedCommit)), Comment("Коммит пользователя на устаревание записи")]
|
||||
public virtual ChangeLogCommit? ObsoletedCommit { get; set; }
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using DD.Persistence.Database.Entity;
|
||||
using DD.Persistence.Models.Requests;
|
||||
using DD.Persistence.Repositories;
|
||||
using Mapster;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using System;
|
||||
@ -20,20 +21,21 @@ public class ChangeLogCommitRepository : IChangeLogCommitRepository
|
||||
this.db = db;
|
||||
}
|
||||
|
||||
public async Task<Guid> Add(CreateChangeLogCommitRequest commitRequestDto, CancellationToken token)
|
||||
public async Task<ChangeLogCommitDto> Add(CreateChangeLogCommitRequest commitRequest, CancellationToken token)
|
||||
{
|
||||
|
||||
var commit = new ChangeLogCommit()
|
||||
{
|
||||
Id = Uuid7.Guid(),
|
||||
IdAuthor = commitRequestDto.IdAuthor,
|
||||
Comment = commitRequestDto.Comment,
|
||||
Creation = commitRequestDto.Creation,
|
||||
IdAuthor = commitRequest.IdAuthor,
|
||||
Comment = commitRequest.Comment ?? string.Empty,
|
||||
Creation = commitRequest.Creation,
|
||||
};
|
||||
|
||||
db.Add(commit);
|
||||
|
||||
await db.SaveChangesAsync();
|
||||
return commit.Id;
|
||||
|
||||
var commitDto = commit.Adapt<ChangeLogCommitDto>();
|
||||
return commitDto;
|
||||
}
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public class ChangeLogRepository : IChangeLogRepository
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<int> MarkAsDeleted(Guid idCommit, IEnumerable<Guid> ids, DateTimeOffset updateTime, CancellationToken token)
|
||||
public async Task<int> MarkAsDeleted(IEnumerable<Guid> ids, ChangeLogCommitDto commit, CancellationToken token)
|
||||
{
|
||||
var query = db.Set<ChangeLog>()
|
||||
.Where(s => ids.Contains(s.Id))
|
||||
@ -57,14 +57,14 @@ public class ChangeLogRepository : IChangeLogRepository
|
||||
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
entity.Obsolete = updateTime;
|
||||
entity.IdObsoletedCommit = idCommit;
|
||||
entity.Obsolete = commit.Creation;
|
||||
entity.IdObsoletedCommit = commit.Id;
|
||||
}
|
||||
|
||||
return await db.SaveChangesAsync(token);
|
||||
}
|
||||
|
||||
public async Task<int> MarkAsDeleted(Guid idDiscriminator, Guid idCommit, DateTimeOffset updateTime, CancellationToken token)
|
||||
public async Task<int> MarkAsDeleted(Guid idDiscriminator, ChangeLogCommitDto commit, CancellationToken token)
|
||||
{
|
||||
var query = db.Set<ChangeLog>()
|
||||
.Where(s => s.DiscriminatorId == idDiscriminator)
|
||||
@ -74,8 +74,8 @@ public class ChangeLogRepository : IChangeLogRepository
|
||||
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
entity.Obsolete = updateTime;
|
||||
entity.DiscriminatorId = idCommit;
|
||||
entity.Obsolete = commit.Creation;
|
||||
entity.DiscriminatorId = commit.Id;
|
||||
}
|
||||
|
||||
return await db.SaveChangesAsync(token);
|
||||
@ -91,7 +91,7 @@ public class ChangeLogRepository : IChangeLogRepository
|
||||
|
||||
using var transaction = await db.Database.BeginTransactionAsync(token);
|
||||
|
||||
result += await MarkAsDeleted(commitDto.Id, changeLogIds, commitDto.Creation, token);
|
||||
result += await MarkAsDeleted(idDiscriminator, commitDto, token);
|
||||
result += await AddRange(idDiscriminator, commitDto, dtos, token);
|
||||
|
||||
await transaction.CommitAsync(token);
|
||||
|
@ -44,11 +44,20 @@ public class ChangeLogControllerTest : BaseIntegrationTest
|
||||
var idDiscriminator = newEntitiesData.Item1;
|
||||
var dtos = newEntitiesData.Item2;
|
||||
|
||||
var newEntitiesData2 = await CreateAndReturnNewDtos(insertedCount, (-15, -1));
|
||||
var idDiscriminator2 = newEntitiesData2.Item1;
|
||||
var dtos2 = newEntitiesData2.Item2;
|
||||
|
||||
//act
|
||||
var result = await client.ClearAndAddRange(idDiscriminator, dtos, "Добавление новых элементов и очистка старых", CancellationToken.None);
|
||||
var changeLogActualWithIdDiscriminator = await client.GetByDate(idDiscriminator2, DateTimeOffset.UtcNow, paginationRequest, CancellationToken.None);
|
||||
var changeLogActualWithIdDiscriminator2 = await client.GetByDate(idDiscriminator, DateTimeOffset.UtcNow, paginationRequest, CancellationToken.None);
|
||||
|
||||
// assert
|
||||
Assert.Equal(insertedCount * 2, result);
|
||||
Assert.Equal(insertedCount, changeLogActualWithIdDiscriminator.Count);
|
||||
Assert.Equal(insertedCount, changeLogActualWithIdDiscriminator2.Count);
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@ -143,12 +152,24 @@ public class ChangeLogControllerTest : BaseIntegrationTest
|
||||
var idDiscriminator = newEntitiesData.Item1;
|
||||
var dtos = newEntitiesData.Item2;
|
||||
|
||||
var newEntitiesData2 = await CreateAndReturnNewDtos(insertedCount, (-15, -1));
|
||||
var idDiscriminator2 = newEntitiesData2.Item1;
|
||||
var dtos2 = newEntitiesData2.Item2;
|
||||
|
||||
// act
|
||||
var ids = dtos.Select(e => e.Id);
|
||||
var result = await client.DeleteRange(ids, "Удаление нескольких записей", CancellationToken.None);
|
||||
|
||||
// assert
|
||||
Assert.Equal(insertedCount, result);
|
||||
|
||||
// act
|
||||
var actualWithIdDescriminator = await client.GetByDate(idDiscriminator, DateTimeOffset.UtcNow, paginationRequest, CancellationToken.None);
|
||||
var actualWithIdDescriminator2 = await client.GetByDate(idDiscriminator2, DateTimeOffset.UtcNow, paginationRequest, CancellationToken.None);
|
||||
|
||||
// assert
|
||||
Assert.Equal(0, actualWithIdDescriminator.Count);
|
||||
Assert.Equal(insertedCount, actualWithIdDescriminator2.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
@ -5,17 +5,26 @@
|
||||
/// </summary>
|
||||
public class ChangeLogCommitDto : CreateChangeLogCommitRequest
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public ChangeLogCommitDto()
|
||||
{
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// ctor
|
||||
/// </summary>
|
||||
/// <param name="idAuthor"></param>
|
||||
/// <param name="comment"></param>
|
||||
public ChangeLogCommitDto(Guid idAuthor, string? comment) : base(idAuthor, comment)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public ChangeLogCommitDto(Guid id, CreateChangeLogCommitRequest request) : base(request.IdAuthor, request.Comment)
|
||||
{
|
||||
Id = id;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,15 +18,23 @@ public class CreateChangeLogCommitRequest
|
||||
/// <summary>
|
||||
/// Комментарий
|
||||
/// </summary>
|
||||
public string Comment { get; set; } = string.Empty;
|
||||
public string? Comment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public CreateChangeLogCommitRequest(Guid idAuthor, string comment)
|
||||
public CreateChangeLogCommitRequest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public CreateChangeLogCommitRequest(Guid idAuthor, string? comment)
|
||||
{
|
||||
IdAuthor = idAuthor;
|
||||
Comment = comment;
|
||||
Comment = comment ?? string.Empty;
|
||||
Creation = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
|
@ -24,13 +24,12 @@ public class ChangeLogTest
|
||||
{
|
||||
//arrange
|
||||
var discriminatorId = Uuid7.Guid();
|
||||
var expectedCommitId = Uuid7.Guid();
|
||||
var comment = "Добавление нескольких значений";
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), "Добавление нескольких значений");
|
||||
var commit = new ChangeLogCommitDto(commitRequest.IdAuthor, commitRequest.Comment);
|
||||
commit.Id = Uuid7.Guid();
|
||||
var dtos = GenerateChangeLogValuesDto(2);
|
||||
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit);
|
||||
changeLogRepository
|
||||
.AddRange(
|
||||
Arg.Any<Guid>(),
|
||||
@ -55,14 +54,13 @@ public class ChangeLogTest
|
||||
{
|
||||
//arrange
|
||||
var discriminatorId = Uuid7.Guid();
|
||||
var expectedCommitId = Uuid7.Guid();
|
||||
var comment = "Изменение нескольких значений";
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), "Изменение нескольких значений");
|
||||
var commit = new ChangeLogCommitDto(commitRequest.IdAuthor, commitRequest.Comment);
|
||||
commit.Id = Uuid7.Guid();
|
||||
|
||||
var dtos = GenerateChangeLogValuesDto(2);
|
||||
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit.Id);
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit);
|
||||
|
||||
changeLogRepository
|
||||
.UpdateRange(
|
||||
@ -91,19 +89,17 @@ public class ChangeLogTest
|
||||
{
|
||||
//arrange
|
||||
var discriminatorId = Uuid7.Guid();
|
||||
var expectedCommitId = Uuid7.Guid();
|
||||
var comment = "Удаление нескольких значений";
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), "Удаление нескольких значений");
|
||||
var commit = new ChangeLogCommitDto(commitRequest.IdAuthor, commitRequest.Comment);
|
||||
commit.Id = Uuid7.Guid();
|
||||
var dtos = GenerateChangeLogValuesDto(2);
|
||||
var dtoIds = dtos.Select(d => d.Id);
|
||||
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(expectedCommitId);
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit);
|
||||
changeLogRepository
|
||||
.MarkAsDeleted(
|
||||
Arg.Any<Guid>(),
|
||||
Arg.Any<IEnumerable<Guid>>(),
|
||||
Arg.Any<DateTimeOffset>(),
|
||||
Arg.Any<ChangeLogCommitDto>(),
|
||||
Arg.Any<CancellationToken>())
|
||||
.Returns(2);
|
||||
|
||||
@ -115,7 +111,7 @@ public class ChangeLogTest
|
||||
|
||||
//assert
|
||||
await changeLogCommitRepository.Received(1).Add(commitRequest, CancellationToken.None);
|
||||
await changeLogRepository.Received(2).MarkAsDeleted(commit.Id, dtoIds, Arg.Any<DateTimeOffset>(), CancellationToken.None);
|
||||
await changeLogRepository.Received(2).MarkAsDeleted(dtoIds, commit, CancellationToken.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@ -123,14 +119,13 @@ public class ChangeLogTest
|
||||
{
|
||||
//arrange
|
||||
var discriminatorId = Uuid7.Guid();
|
||||
var expectedCommitId = Uuid7.Guid();
|
||||
var comment = "Удаление и добавление нескольких значений";
|
||||
var commitRequest = new CreateChangeLogCommitRequest(expectedCommitId, comment);
|
||||
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||
var commitRequest = new CreateChangeLogCommitRequest(Uuid7.Guid(), "Удаление и добавление нескольких значений");
|
||||
var commit = new ChangeLogCommitDto(commitRequest.IdAuthor, commitRequest.Comment);
|
||||
commit.Id = Uuid7.Guid();
|
||||
var dtos = GenerateChangeLogValuesDto(2);
|
||||
var dtoIds = dtos.Select(d => d.Id);
|
||||
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
||||
changeLogCommitRepository.Add(Arg.Any<CreateChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit);
|
||||
changeLogRepository
|
||||
.ClearAndAddRange(
|
||||
Arg.Any<Guid>(),
|
||||
|
@ -1,9 +1,4 @@
|
||||
using DD.Persistence.Models.Requests;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DD.Persistence.Repositories;
|
||||
|
||||
@ -18,5 +13,5 @@ public interface IChangeLogCommitRepository
|
||||
/// <param name="commitDto"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<Guid> Add(CreateChangeLogCommitRequest commitDto, CancellationToken token);
|
||||
Task<ChangeLogCommitDto> Add(CreateChangeLogCommitRequest commitDto, CancellationToken token);
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Models.Common;
|
||||
using DD.Persistence.Models.Requests;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
|
||||
|
||||
namespace DD.Persistence.Repositories;
|
||||
|
||||
@ -23,22 +22,20 @@ public interface IChangeLogRepository : ISyncWithDiscriminatorRepository<ChangeL
|
||||
/// <summary>
|
||||
/// Пометить записи как удаленные
|
||||
/// </summary>
|
||||
/// <param name="idCommit"></param>
|
||||
/// <param name="ids">ключи записей</param>
|
||||
/// <param name="updateTime"></param>
|
||||
/// <param name="commit"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> MarkAsDeleted(Guid idCommit, IEnumerable<Guid> ids, DateTimeOffset updateTime, CancellationToken token);
|
||||
Task<int> MarkAsDeleted(IEnumerable<Guid> ids, ChangeLogCommitDto commit, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Пометить записи как удаленные
|
||||
/// </summary>
|
||||
/// <param name="idDiscriminator">дискриминатор таблицы</param>
|
||||
/// <param name="idCommit"></param>
|
||||
/// <param name="updateTime"></param>
|
||||
/// <param name="commit"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> MarkAsDeleted(Guid idDiscriminator, Guid idCommit, DateTimeOffset updateTime, CancellationToken token);
|
||||
Task<int> MarkAsDeleted(Guid idDiscriminator, ChangeLogCommitDto commit, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Очистить и добавить новые
|
||||
|
Loading…
Reference in New Issue
Block a user