Files
xSaherElmIds/Providers/XApplicationProvider/XApplicationProvider+Enricher.cs
T
2026-10-06 17:47:27 +03:30

302 lines
8.7 KiB
C#

using System.Linq;
using System.Threading;
using xCommons.Extensions;
using xIdentityModels.Dtos;
using System.Threading.Tasks;
using xIdentityModels.Models;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace xIds.Providers
{
public partial class XApplicationProvider
{
//
#region Enrichers ...
/// <summary>
/// Enrich Api Key ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApiKeyDto> EnrichAsync(
XApiKey source,
CancellationToken cancellationToken = default
)
{
//
var result = source.MapConvert<XApiKeyDto, XApiKey>();
result = await EnrichAsync(
source: result,
cancellationToken: cancellationToken
);
//
return result;
}
/// <summary>
/// Enrich Api Key ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApiKeyDto> EnrichAsync(
XApiKeyDto source,
CancellationToken cancellationToken = default
)
{
//
if (
!source.IsNullOrDefault() &&
!source.Application.IsNullOrDefault()
)
{
//
var application = await dbContext.Applications
.FirstOrDefaultAsync(
x => x.Id == source.ApplicationId,
cancellationToken: cancellationToken
);
if (!application.IsNullOrDefault())
{
//
var dto = await EnrichAsync(
source: application,
cancellationToken: cancellationToken
);
if (!dto.IsNullOrDefault())
{
source.Application = dto;
}
}
}
//
return source;
}
/// <summary>
/// Enrich Api Key Usage ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApiKeyUsageDto> EnrichAsync(
XApiKeyUsage source,
CancellationToken cancellationToken = default
)
{
//
var result = source.MapConvert<XApiKeyUsageDto, XApiKeyUsage>();
result = await EnrichAsync(
source: result,
cancellationToken: cancellationToken
);
//
return result;
}
/// <summary>
/// Enrich Application ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApplicationDto> EnrichAsync(
XApplication source,
CancellationToken cancellationToken = default
)
{
//
var result = source.MapConvert<XApplicationDto, XApplication>();
result = await EnrichAsync(
source: result,
cancellationToken: cancellationToken
);
//
return result;
}
/// <summary>
/// Enrich Api Key Usage ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApiKeyUsageDto> EnrichAsync(
XApiKeyUsageDto source,
CancellationToken cancellationToken = default
)
{
//
// There is not any Additional Enrichment ...
var result = await Task.FromResult(source);
return result;
}
/// <summary>
/// Enrich Application ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XApplicationDto> EnrichAsync(
XApplicationDto source,
CancellationToken cancellationToken = default
)
{
//
if (
!source.IsNullOrDefault() &&
!source.OwnerId.IsNullOrEmpty()
)
{
//
var owner = await GetOwner(source.OwnerId);
if (!owner.IsNullOrDefault())
{
source.Owner = owner;
}
}
//
return source;
}
/// <summary>
/// Enrich a Collection of Api Key(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApiKeyDto>> EnrichRangeAsync(
IEnumerable<XApiKey> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
/// <summary>
/// Enrich a Collection of Api Key(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApiKeyDto>> EnrichRangeAsync(
IEnumerable<XApiKeyDto> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
/// <summary>
/// Enrich a Collection of Api Key Usage(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApiKeyUsageDto>> EnrichRangeAsync(
IEnumerable<XApiKeyUsage> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
/// <summary>
/// Enrich a Collection of Application(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApplicationDto>> EnrichRangeAsync(
IEnumerable<XApplication> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
/// <summary>
/// Enrich a Collection of Api Key Usage(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApiKeyUsageDto>> EnrichRangeAsync(
IEnumerable<XApiKeyUsageDto> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
/// <summary>
/// Enrich a Collection of Application(s) ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XApplicationDto>> EnrichRangeAsync(
IEnumerable<XApplicationDto> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(s => EnrichAsync(s, cancellationToken));
//
var result = await Task.WhenAll(tasks);
//
return result;
}
#endregion
}
}