Files
xIdentityService/Interfaces/IXBaseReferenced.cs
T
2026-05-28 11:38:42 +03:30

88 lines
2.8 KiB
C#

using System;
using System.Collections;
using System.Threading;
using System.Threading.Tasks;
using xDataService.Models;
using xIdentityModels.Models;
namespace xIdentityService.Interfaces
{
/// <summary>
/// a Referenced Service is a Service which can Referenced to other Items ...
/// </summary>
public interface IXBaseReferenced
{
/// <summary>
/// Get Reference Identifier for Specified Provider and Specified Item ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <returns></returns>
string GetIdentifier<TKey>(
string providedFor,
TKey forProvidedId
);
/// <summary>
/// Check Specified Item has Refernce to Provider ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<bool> IsProvidedFor<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
CancellationToken cancellationToken = default
);
/// <summary>
/// Add Specified Reference to Specified Item ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="forIndex"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task AddReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
int forIndex = 0,
XUserClaimsInfoDto userInfo = null,
string connectionId = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Remove Specified Reference from Specified Item ...
/// </summary>
/// <param name="providedFor"></param>
/// <param name="forProvidedId"></param>
/// <param name="id"></param>
/// <param name="forIndex"></param>
/// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task RemoveReference<TKey>(
string providedFor,
TKey forProvidedId,
Guid id,
int forIndex = 0,
XUserClaimsInfoDto userInfo = null,
string connectionId = null,
CancellationToken cancellationToken = default
);
Task<IEnumerable<XReference<string>>> GetReferences(
Guid id,
);
}
}