100 lines
3.4 KiB
C#
100 lines
3.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using xDataService.Models;
|
|
using xIdentityModels.Models;
|
|
using xModels.Base;
|
|
|
|
namespace xIdentityService.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// a Referenced Service is a Service which can Referenced to other Items ...
|
|
/// </summary>
|
|
public interface IXBaseReferenced<TEntity, TKey>
|
|
where TEntity : XBaseEntity<TKey>
|
|
{
|
|
/// <summary>
|
|
/// Get Reference Identifier for Specified Provider and Specified Item ...
|
|
/// </summary>
|
|
/// <param name="providedFor"></param>
|
|
/// <param name="forProvidedId"></param>
|
|
/// <returns></returns>
|
|
string GetIdentifier<TReferenceKey>(
|
|
string providedFor,
|
|
TReferenceKey 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<TReferenceKey>(
|
|
string providedFor,
|
|
TReferenceKey forProvidedId,
|
|
TKey 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<TReferenceKey>(
|
|
string providedFor,
|
|
TReferenceKey forProvidedId,
|
|
TKey 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<TReferenceKey>(
|
|
string providedFor,
|
|
TReferenceKey forProvidedId,
|
|
TKey id,
|
|
int forIndex = 0,
|
|
XUserClaimsInfoDto userInfo = null,
|
|
string connectionId = null,
|
|
CancellationToken cancellationToken = default
|
|
);
|
|
|
|
/// <summary>
|
|
/// Get Specified References ...
|
|
/// </summary>
|
|
/// <param name="providedFor"></param>
|
|
/// <param name="id"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <typeparam name="TReferenceKey"></typeparam>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<XReference<string>>> GetReferences(
|
|
string providedFor,
|
|
TKey id,
|
|
CancellationToken cancellationToken = default
|
|
);
|
|
}
|
|
} |