Архивация списков (#13)
Tests / frontend-test (push) Successful in 44s
Tests / backend-test (push) Failing after 17m4s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/13
This commit was merged in pull request #13.
This commit is contained in:
2026-08-19 09:08:36 +00:00
parent a2672042d7
commit 82512eb1db
56 changed files with 2587 additions and 51 deletions
@@ -0,0 +1,27 @@
namespace Tnsu.ApprovalRoute.Infrastructure.SharePoint;
/// <summary>Созданный список: серверный относительный url (он же ListId) и Title.</summary>
public sealed record ProvisionedList(string ListId, string Title);
/// <summary>
/// Создание следующей пары списков серии в SharePoint («&lt;Форма&gt; &lt;N&gt; — данные»
/// + «&lt;Форма&gt; &lt;N&gt; — согласование») дублированием текущей пары.
///
/// Интерфейс живёт в Infrastructure, а не в Application, потому что Application уже
/// ссылается на Infrastructure (так же устроен <see cref="ISharePointClient"/>) —
/// обратная ссылка замкнула бы проекты в кольцо.
/// </summary>
public interface ISharePointListProvisioner
{
/// <summary>
/// Создать пару списков с номером <paramref name="number"/>, скопировав структуру
/// со списка <paramref name="sourceDataListId"/>. Возвращает созданный список ДАННЫХ
/// (список согласования создаётся тем же вызовом, но наружу не отдаётся — его
/// находят по конвенции имени).
/// </summary>
Task<ProvisionedList> CreateNextListPairAsync(
string siteUrl,
string sourceDataListId,
int number,
CancellationToken cancellationToken);
}