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 { /// /// Determine a banned time is passed or not /// /// /// /// public static bool IsDelayTimePassed( this XBannedDevice source, int delaySeconds ) { // var passedTime = source.BannedOn.AddSeconds(delaySeconds); // var result = DateTime.UtcNow >= passedTime; // return result; } /// /// Applying Filter to IQueryable /// /// /// public static async Task> ApplyFilterAsync( this IQueryable source, string filter ) where T : class { // // Apply Filter ... if (!filter.IsNullOrEmpty()) { // var items = source.AsAsyncEnumerable(); var filteredItems = new List(); 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; } } }