using SqlSugar; using System; using System.Collections.Generic; using System.Security.AccessControl; using System.Text; using System.Threading.Tasks; using System.Linq; using System.Data; using System.Text.RegularExpressions; using System.Collections; using ReZero.DependencyInjection; namespace ReZero.SuperAPI { /// /// ToList /// public partial class QueryCommon : IDataService { private async Task ToList(DataModel dataModel, RefAsync count, Type type, QueryMethodInfo queryObject) { object? result = null; if (IsDefaultToList(dataModel)) { result = await DefaultQuery(queryObject, result); if (dataModel.ApiId == InterfaceListInitializerProvider.IntIntListId) { var userName = DependencyResolver.GetLoggedInUser(); var list = CacheManager.Instance.GetList(); if (list.Any()) { var mappings = CacheManager.Instance.GetList() .Where(it => it.UserName!.ToLower() == userName?.ToLower()) .ToList(); var ids = mappings.Select(it => it.InterfaceId).ToList(); result = (result as IList).Cast() .Where(it=> ids.Contains(Convert.ToInt64(it.GetType().GetProperty(nameof(ZeroInterfaceList.Id)).GetValue(it)))).ToList(); } } } else { result = await PageQuery(dataModel, count, type, queryObject, result); } return result; } } }