Initial ...

This commit is contained in:
2026-03-22 14:08:25 +03:30
commit d3464ef39c
71 changed files with 19087 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using xCommons.Extensions;
using xDataService.Configuration;
using xIdentityModels.Models;
namespace xIds.Extensions
{
public static class XModelExtensions
{
/// <summary>
/// Determine a banned time is passed or not
/// </summary>
/// <param name="source"></param>
/// <param name="delaySeconds"></param>
/// <returns></returns>
public static bool IsDelayTimePassed(
this XBannedDevice source,
int delaySeconds
)
{
//
var passedTime = source.BannedOn.AddSeconds(delaySeconds);
//
var result = DateTime.UtcNow >= passedTime;
//
return result;
}
/// <summary>
/// Applying Filter to IQueryable
/// /// </summary>
/// <typeparam name="T"></typeparam>
public static async Task<IQueryable<T>> ApplyFilterAsync<T>(
this IQueryable<T> source,
string filter
) where T : class
{
//
// Apply Filter ...
if (!filter.IsNullOrEmpty())
{
//
var items = source.AsAsyncEnumerable();
var filteredItems = new List<T>();
await
foreach (var item in items)
{
//
if (item.GetPropValues()
.ToNormalString()
.Contains(filter
.ToNormalString()))
{
//
filteredItems.Add(item);
}
}
//
return filteredItems.AsQueryable();
}
//
return source;
}
public static XDataServiceConfiguration ToXDataServiceConfig(this Configurations.XDataServiceConfiguration config)
{
//
var result = new XDataServiceConfiguration();
//
if (!config.IsNullOrDefault())
{
//
result.PagingConfiguration.DefaultPageSize = config.PagingConfiguration.DefaultPageSize;
result.PagingConfiguration.MaxAvailablePageSize = config.PagingConfiguration.MaxAvailablePageSize;
result.PagingConfiguration.MinAvailablePageSize = config.PagingConfiguration.MinAvailablePageSize;
}
//
return result;
}
}
}