This commit is contained in:
2026-10-05 17:37:28 +03:30
parent 0e9680dc95
commit ac0ebe601e
15 changed files with 2881 additions and 37 deletions
+228 -3
View File
@@ -27,7 +27,7 @@ namespace xIds.Interfaces
/// <returns></returns>
Task<XApplicationDto> AddApplicationAsync(
XApplicationDto item,
XUserClaimsInfoDto userInfo,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
@@ -117,12 +117,14 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> FindOneApplicationAsync(
Expression<Func<XApplication, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
@@ -132,6 +134,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
@@ -139,6 +142,7 @@ namespace xIds.Interfaces
Task<IEnumerable<XApplicationDto>> FindManyApplicationAsync(
Expression<Func<XApplication, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
@@ -149,6 +153,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
@@ -157,6 +162,7 @@ namespace xIds.Interfaces
Task<XQueryResult<XApplicationDto>> QueryApplicationAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Expression<Func<XApplication, bool>> predicate = null,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
@@ -175,7 +181,7 @@ namespace xIds.Interfaces
/// <returns></returns>
Task<XApiKeyDto> AddApiKeyAsync(
XApiKey item,
XUserClaimsInfoDto userInfo,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
@@ -265,12 +271,14 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> FindOneApiKeyAsync(
Expression<Func<XApiKey, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
@@ -280,6 +288,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
@@ -287,6 +296,7 @@ namespace xIds.Interfaces
Task<IEnumerable<XApiKeyDto>> FindManyApiKeyAsync(
Expression<Func<XApiKey, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
@@ -297,6 +307,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
@@ -305,6 +316,7 @@ namespace xIds.Interfaces
Task<XQueryResult<XApiKeyDto>> QueryApiKeyAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Expression<Func<XApiKey, bool>> predicate = null,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
@@ -323,7 +335,7 @@ namespace xIds.Interfaces
/// <returns></returns>
Task<XApiKeyUsageDto> AddApiKeyUsageAsync(
XApiKeyUsageDto item,
XUserClaimsInfoDto userInfo,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
@@ -413,12 +425,14 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> FindOneApiKeyUsageAsync(
Expression<Func<XApiKeyUsage, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
@@ -428,6 +442,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
@@ -435,6 +450,7 @@ namespace xIds.Interfaces
Task<IEnumerable<XApiKeyUsageDto>> FindManyApiKeyUsageAsync(
Expression<Func<XApiKeyUsage, bool>> predicate,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
@@ -445,6 +461,7 @@ namespace xIds.Interfaces
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
@@ -453,6 +470,7 @@ namespace xIds.Interfaces
Task<XQueryResult<XApiKeyUsageDto>> QueryApiKeyUsageAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Expression<Func<XApiKeyUsage, bool>> predicate = null,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
@@ -462,10 +480,217 @@ namespace xIds.Interfaces
//
#region Custom Actions ...
/// <summary>
/// Generate a New ApiKey and Add It to DB ...
/// </summary>
/// <param name="applicationId"></param>
/// <param name="expiration"></param>
/// <param name="scopes"></param>
/// <param name="allowedIPs"></param>
/// <param name="rateLimit"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> CreateApiKey(
int applicationId,
TimeSpan? expiration = null,
IEnumerable<string> scopes = null,
IEnumerable<string> allowedIPs = null,
int? rateLimit = null,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Revoke Specified Api Key ...
/// </summary>
/// <param name="apiKeyId"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<bool> RevokeApiKey(
Guid apiKeyId,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Renew Specified Api Key ...
/// </summary>
/// <param name="apiKeyId"></param>
/// <param name="newExpiration"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> RotateApiKey(
Guid apiKeyId,
TimeSpan? newExpiration = null,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve All Api Keys for Specified Application ...
/// </summary>
/// <param name="applicationId"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApiKeyDto>> GetApplicationApiKeys(
Guid applicationId,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Validate Specified Api Key in based on ClientIP ...
/// </summary>
/// <param name="apiKey"></param>
/// <param name="clientIP"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<bool> ValidateApiKey(
string apiKey,
string clientIP,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
#endregion
//
#region Enrichers ...
/// <summary>
/// Enrich Api Key ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> EnrichAsync(
XApiKey source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich Api Key ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> EnrichAsync(
XApiKeyDto source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich Api Key Usage ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> EnrichAsync(
XApiKeyUsage source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich Application ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> EnrichAsync(
XApplication source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich Api Key Usage ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> EnrichAsync(
XApiKeyUsageDto source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich Application ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> EnrichAsync(
XApplicationDto source,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Api Key(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> EnrichRangeAsync(
IEnumerable<XApiKey> sources,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Api Key(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> EnrichRangeAsync(
IEnumerable<XApiKeyDto> sources,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Api Key Usage(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> EnrichRangeAsync(
IEnumerable<XApiKeyUsage> sources,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Application(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> EnrichRangeAsync(
IEnumerable<XApplication> sources,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Api Key Usage(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> EnrichRangeAsync(
IEnumerable<XApiKeyUsageDto> sources,
CancellationToken cancellationToken = default
);
/// <summary>
/// Enrich a Collection of Application(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> EnrichRangeAsync(
IEnumerable<XApplicationDto> sources,
CancellationToken cancellationToken = default
);
#endregion
}
}