|
- namespace Campaign_Tracker.Server.ExtensionData;
-
- public interface IExtensionRecordStore
- {
- Task<ExtensionRecordSaveResult> SaveAsync(
- ExtensionRecordDraft draft,
- CancellationToken cancellationToken = default);
-
- Task<IReadOnlyList<ILegacyLinkedRecord>> GetAllAsync(CancellationToken cancellationToken = default);
- }
-
- public sealed record ExtensionRecordDraft(
- string RecordType,
- string RecordId,
- LegacyLinkReference LegacyLink);
-
- public sealed record ExtensionRecordSaveResult(
- bool Saved,
- string? Error,
- ILegacyLinkedRecord? Record)
- {
- public static ExtensionRecordSaveResult Success(ILegacyLinkedRecord record) =>
- new(true, null, record);
-
- public static ExtensionRecordSaveResult Failure(string error) =>
- new(false, error, null);
- }
|