using LifePayment.Application.Contracts; using LifePayment.Domain; using LifePayment.Domain.Models; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Channels; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories; using Z.EntityFramework.Plus; using ZeroD.Util; namespace LifePayment.Domain.Common { public class ChannelFilter : AbstractChannelFilter { public override IQueryable GetChannelLifePayOrderFilter(IQueryable query) { if (CurrentUser.ClientId == Constant.ClientType.Back) { var queryUser = UserChannleRepository.Where(r => r.UserId == CurrentUser.Id).Select(s => s.ChannleId).ToList(); var queryResult = query.Where(s => (s.ChannelId.HasValue && queryUser.Contains(s.ChannelId.Value)) || !s.ChannelId.HasValue); return queryResult; } return query; } } public class ChannelsBase : Entity { public Guid ChannleId { get; set; } } }