302 lines
8.7 KiB
C#
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
|
|
}
|
|
} |