This commit is contained in:
2026-10-04 22:02:13 +03:30
parent b7fba89157
commit 0e9680dc95
+471
View File
@@ -0,0 +1,471 @@
using System;
using System.Linq;
using xModels.Dtos;
using System.Threading;
using xIdentityModels.Dtos;
using System.Threading.Tasks;
using xIdentityModels.Models;
using System.Linq.Expressions;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Query;
namespace xIds.Interfaces
{
/// <summary>
/// a Service For Manage Security Applications and also Api Key(s) ...
/// </summary>
public interface IXApplicationProvider
{
//
#region Application ...
/// <summary>
/// Add Specified Item ...
/// </summary>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> AddApplicationAsync(
XApplicationDto item,
XUserClaimsInfoDto userInfo,
CancellationToken cancellationToken = default
);
/// <summary>
/// Update Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> UpdateApplicationAsync(
int id,
XApplicationDto item,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Remove Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="softDelete"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> RemoveApplicationAsync(
int id,
bool softDelete = true,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve an Item by Providing it's ID ...
/// </summary>
/// <param name="id"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> GetApplicationAsync(
int id,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApplicationDto>> GetAllApplicationAsync(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items as Async Enumerable ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
IAsyncEnumerable<XApplicationDto> GetAllApplicationAsAsyncEnumerable(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find an Item By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApplicationDto> FindOneApplicationAsync(
Expression<Func<XApplication, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find a Collection of Items By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApplicationDto>> FindManyApplicationAsync(
Expression<Func<XApplication, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve Items based on XQuery Pagination Structure ...
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XQueryResult<XApplicationDto>> QueryApplicationAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
Expression<Func<XApplication, bool>> predicate = null,
Func<IQueryable<XApplication>, IOrderedQueryable<XApplication>> orderBuilder = null,
Func<IQueryable<XApplication>, IIncludableQueryable<XApplication, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
#endregion
//
#region ApiKey ...
/// <summary>
/// Add Specified Item ...
/// </summary>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> AddApiKeyAsync(
XApiKey item,
XUserClaimsInfoDto userInfo,
CancellationToken cancellationToken = default
);
/// <summary>
/// Update Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> UpdateApiKeyAsync(
int id,
XApiKeyDto item,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Remove Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="softDelete"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> RemoveApiKeyAsync(
int id,
bool softDelete = true,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve an Item by Providing it's ID ...
/// </summary>
/// <param name="id"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> GetApiKeyAsync(
int id,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApiKeyDto>> GetAllApiKeyAsync(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items as Async Enumerable ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
IAsyncEnumerable<XApiKeyDto> GetAllApiKeyAsAsyncEnumerable(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find an Item By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyDto> FindOneApiKeyAsync(
Expression<Func<XApiKey, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find a Collection of Items By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApiKeyDto>> FindManyApiKeyAsync(
Expression<Func<XApiKey, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve Items based on XQuery Pagination Structure ...
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XQueryResult<XApiKeyDto>> QueryApiKeyAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
Expression<Func<XApiKey, bool>> predicate = null,
Func<IQueryable<XApiKey>, IOrderedQueryable<XApiKey>> orderBuilder = null,
Func<IQueryable<XApiKey>, IIncludableQueryable<XApiKey, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
#endregion
//
#region ApiKeyUsage ...
/// <summary>
/// Add Specified Item ...
/// </summary>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> AddApiKeyUsageAsync(
XApiKeyUsageDto item,
XUserClaimsInfoDto userInfo,
CancellationToken cancellationToken = default
);
/// <summary>
/// Update Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="item"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> UpdateApiKeyUsageAsync(
int id,
XApiKeyUsageDto item,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Remove Specified Item ...
/// </summary>
/// <param name="id"></param>
/// <param name="softDelete"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> RemoveApiKeyUsageAsync(
int id,
bool softDelete = true,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve an Item by Providing it's ID ...
/// </summary>
/// <param name="id"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> GetApiKeyUsageAsync(
int id,
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApiKeyUsageDto>> GetAllApiKeyUsageAsync(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve all Items as Async Enumerable ...
/// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="userInfo"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
IAsyncEnumerable<XApiKeyUsageDto> GetAllApiKeyUsageAsAsyncEnumerable(
bool ignoreSoftDeleteds = true,
XUserClaimsInfoDto userInfo = null,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find an Item By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XApiKeyUsageDto> FindOneApiKeyUsageAsync(
Expression<Func<XApiKeyUsage, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Find a Collection of Items By Providing a Conditional Expression ...
/// </summary>
/// <param name="predicate"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<IEnumerable<XApiKeyUsageDto>> FindManyApiKeyUsageAsync(
Expression<Func<XApiKeyUsage, bool>> predicate,
bool ignoreSoftDeleteds = true,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
/// <summary>
/// Retrieve Items based on XQuery Pagination Structure ...
/// </summary>
/// <param name="query"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <param name="predicate"></param>
/// <param name="orderBuilder"></param>
/// <param name="includeBuilder"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<XQueryResult<XApiKeyUsageDto>> QueryApiKeyUsageAsync(
XQuery query,
bool ignoreSoftDeleteds = true,
Expression<Func<XApiKeyUsage, bool>> predicate = null,
Func<IQueryable<XApiKeyUsage>, IOrderedQueryable<XApiKeyUsage>> orderBuilder = null,
Func<IQueryable<XApiKeyUsage>, IIncludableQueryable<XApiKeyUsage, object>> includeBuilder = null,
CancellationToken cancellationToken = default
);
#endregion
//
#region Custom Actions ...
#endregion
//
#region Enrichers ...
#endregion
}
}