public static Expression <Func <Factor, bool> > ToFactorExpression( this FactorPaginationDto factorPaginationDto, SearchIdEnums searchIdType, string id = "", string userId = "", bool isAdmin = true) { switch (searchIdType) { case SearchIdEnums.None: Expression <Func <Factor, bool> > exp = p => true; if (!string.IsNullOrEmpty(factorPaginationDto.Filter) && !string.IsNullOrWhiteSpace(factorPaginationDto.Filter)) { Expression <Func <Factor, bool> > tempExp = (p => p.Id.Contains(factorPaginationDto.Filter) || p.UserName.Contains(factorPaginationDto.Filter) || p.GiftCode.Contains(factorPaginationDto.Filter) || p.Price.ToString().Contains(factorPaginationDto.Filter) || p.EndPrice.ToString().Contains(factorPaginationDto.Filter) || p.RefBank.Contains(factorPaginationDto.Filter) || p.EnterMoneyWalletId.Contains(factorPaginationDto.Filter) || p.UserId.Contains(factorPaginationDto.Filter) || p.GateId.Contains(factorPaginationDto.Filter)); exp = CombineExpressions.CombiningExpressions <Factor>(exp, tempExp, ExpressionsTypeEnum.And); } // if (factorPaginationDto.Status == 1) { Expression <Func <Factor, bool> > tempExp = p => p.Status; exp = CombineExpressions.CombiningExpressions <Factor>(exp, tempExp, ExpressionsTypeEnum.And); } if (factorPaginationDto.Status == 2) { Expression <Func <Factor, bool> > tempExp = p => !p.Status; exp = CombineExpressions.CombiningExpressions <Factor>(exp, tempExp, ExpressionsTypeEnum.And); } // if (factorPaginationDto.FactorType > 0 && factorPaginationDto.FactorType < 5) { Expression <Func <Factor, bool> > tempExp = p => p.Kind == factorPaginationDto.FactorType; exp = CombineExpressions.CombiningExpressions <Factor>(exp, tempExp, ExpressionsTypeEnum.And); } // if (factorPaginationDto.Bank > 0 && factorPaginationDto.Bank < 10) { Expression <Func <Factor, bool> > tempExp = p => p.Bank == factorPaginationDto.Bank; exp = CombineExpressions.CombiningExpressions <Factor>(exp, tempExp, ExpressionsTypeEnum.And); } // Expression <Func <Factor, bool> > priceExp = p => p.Price >= factorPaginationDto.MinPrice && p.Price <= factorPaginationDto.MaxPrice; exp = CombineExpressions.CombiningExpressions <Factor>(exp, priceExp, ExpressionsTypeEnum.And); // var minDt = DateTimeOffset.FromUnixTimeMilliseconds(factorPaginationDto.MinDate); var maxDt = DateTimeOffset.FromUnixTimeMilliseconds(factorPaginationDto.MaxDate); Expression <Func <Factor, bool> > datExp = p => p.DateCreated >= minDt && p.DateCreated <= maxDt; exp = CombineExpressions.CombiningExpressions <Factor>(exp, datExp, ExpressionsTypeEnum.And); return(exp); case SearchIdEnums.User: if (string.IsNullOrEmpty(factorPaginationDto.Filter) || string.IsNullOrWhiteSpace(factorPaginationDto.Filter)) { Expression <Func <Factor, bool> > expUser = p => p.UserId == id; return(expUser); } else { Expression <Func <Factor, bool> > expUser = p => p.UserId == id && (p.Id.Contains(factorPaginationDto.Filter) || p.UserName.Contains(factorPaginationDto.Filter) || p.GiftCode.Contains(factorPaginationDto.Filter) || p.Price.ToString().Contains(factorPaginationDto.Filter) || p.EndPrice.ToString().Contains(factorPaginationDto.Filter) || p.RefBank.Contains(factorPaginationDto.Filter) || p.EnterMoneyWalletId.Contains(factorPaginationDto.Filter) || p.UserId.Contains(factorPaginationDto.Filter) || p.GateId.Contains(factorPaginationDto.Filter)); return(expUser); } case SearchIdEnums.Wallet: if (string.IsNullOrEmpty(factorPaginationDto.Filter) || string.IsNullOrWhiteSpace(factorPaginationDto.Filter)) { Expression <Func <Factor, bool> > expWallet = p => p.EnterMoneyWalletId == id; return(expWallet); } else { Expression <Func <Factor, bool> > expWallet = p => p.EnterMoneyWalletId == id && (p.Id.Contains(factorPaginationDto.Filter) || p.UserName.Contains(factorPaginationDto.Filter) || p.GiftCode.Contains(factorPaginationDto.Filter) || p.Price.ToString().Contains(factorPaginationDto.Filter) || p.EndPrice.ToString().Contains(factorPaginationDto.Filter) || p.RefBank.Contains(factorPaginationDto.Filter) || p.EnterMoneyWalletId.Contains(factorPaginationDto.Filter) || p.UserId.Contains(factorPaginationDto.Filter) || p.GateId.Contains(factorPaginationDto.Filter)); return(expWallet); } case SearchIdEnums.Gate: Expression <Func <Factor, bool> > expGate = p => true; if (!isAdmin) { Expression <Func <Factor, bool> > tempExp = p => p.UserId == userId; expGate = CombineExpressions.CombiningExpressions <Factor>(expGate, tempExp, ExpressionsTypeEnum.And); } if (string.IsNullOrEmpty(factorPaginationDto.Filter) || string.IsNullOrWhiteSpace(factorPaginationDto.Filter)) { Expression <Func <Factor, bool> > tempExp = p => p.GateId == id; return(CombineExpressions.CombiningExpressions <Factor>(expGate, tempExp, ExpressionsTypeEnum.And)); } else { Expression <Func <Factor, bool> > tempExp = p => p.GateId == id && (p.Id.Contains(factorPaginationDto.Filter) || p.UserName.Contains(factorPaginationDto.Filter) || p.GiftCode.Contains(factorPaginationDto.Filter) || p.Price.ToString().Contains(factorPaginationDto.Filter) || p.EndPrice.ToString().Contains(factorPaginationDto.Filter) || p.RefBank.Contains(factorPaginationDto.Filter) || p.EnterMoneyWalletId.Contains(factorPaginationDto.Filter) || p.UserId.Contains(factorPaginationDto.Filter) || p.GateId.Contains(factorPaginationDto.Filter)); return(CombineExpressions.CombiningExpressions <Factor>(expGate, tempExp, ExpressionsTypeEnum.And)); } default: return(null); } }
public static Expression <Func <Ticket, bool> > ToTicketExpression( this TicketsPaginationDto ticketsPaginationDto, SearchIdEnums searchIdType, string id = "") { switch (searchIdType) { case SearchIdEnums.None: Expression <Func <Ticket, bool> > exp = p => true; if (!string.IsNullOrEmpty(ticketsPaginationDto.Filter) && !string.IsNullOrWhiteSpace(ticketsPaginationDto.Filter)) { Expression <Func <Ticket, bool> > tempExp = (p => p.Id.Contains(ticketsPaginationDto.Filter) || p.Title.Contains(ticketsPaginationDto.Filter) || p.TicketContents.Any(s => s.Text.Contains(ticketsPaginationDto.Filter)) || p.TicketContents.Any(s => s.Id.Contains(ticketsPaginationDto.Filter))); exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } // if (ticketsPaginationDto.Closed == 1) { Expression <Func <Ticket, bool> > tempExp = p => p.Closed; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } if (ticketsPaginationDto.Closed == 2) { Expression <Func <Ticket, bool> > tempExp = p => !p.Closed; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } // if (ticketsPaginationDto.IsAdminSide == 1) { Expression <Func <Ticket, bool> > tempExp = p => p.IsAdminSide; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } if (ticketsPaginationDto.IsAdminSide == 2) { Expression <Func <Ticket, bool> > tempExp = p => !p.IsAdminSide; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } // if (ticketsPaginationDto.Department > 0) { Expression <Func <Ticket, bool> > tempExp = p => p.Department == ticketsPaginationDto.Department; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } if (ticketsPaginationDto.Level > 0) { Expression <Func <Ticket, bool> > tempExp = p => p.Level == ticketsPaginationDto.Level; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, tempExp, ExpressionsTypeEnum.And); } // var minDt = DateTimeOffset.FromUnixTimeMilliseconds(ticketsPaginationDto.MinDate); var maxDt = DateTimeOffset.FromUnixTimeMilliseconds(ticketsPaginationDto.MaxDate); Expression <Func <Ticket, bool> > datExp = p => p.DateCreated >= minDt && p.DateCreated <= maxDt; exp = CombineExpressions.CombiningExpressions <Ticket>(exp, datExp, ExpressionsTypeEnum.And); return(exp); case SearchIdEnums.User: if (string.IsNullOrEmpty(ticketsPaginationDto.Filter) || string.IsNullOrWhiteSpace(ticketsPaginationDto.Filter)) { Expression <Func <Ticket, bool> > expUser = p => p.UserId == id; return(expUser); } else { Expression <Func <Ticket, bool> > expUser = p => p.UserId == id && (p.Id.Contains(ticketsPaginationDto.Filter) || p.Title.Contains(ticketsPaginationDto.Filter) || p.TicketContents.Any(s => s.Text.Contains(ticketsPaginationDto.Filter)) || p.TicketContents.Any(s => s.Id.Contains(ticketsPaginationDto.Filter))); return(expUser); } default: return(null); } }
public static Expression <Func <Entry, bool> > ToEntryExpression(this string Filter, EntryState state, SearchIdEnums searchIdType, string id = "") { switch (searchIdType) { case SearchIdEnums.None: if (string.IsNullOrEmpty(Filter) || string.IsNullOrWhiteSpace(Filter)) { switch (state) { case EntryState.All: return(null); case EntryState.Approve: return(p => !p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Pardakht: return(p => p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Archive: return(p => p.IsReject || p.IsPardakht); default: return(null); } } else { switch (state) { case EntryState.All: return(p => p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)); case EntryState.Approve: { return(p => ( p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter) ) && ( !p.IsApprove && !p.IsPardakht && !p.IsReject )); } case EntryState.Pardakht: { return(p => ( p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter) ) && ( p.IsApprove && !p.IsPardakht && !p.IsReject )); } case EntryState.Archive: { return(p => ( p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter) ) && ( p.IsReject || p.IsPardakht )); } default: return(p => p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)); } } case SearchIdEnums.BankCard: if (string.IsNullOrEmpty(Filter) || string.IsNullOrWhiteSpace(Filter)) { switch (state) { case EntryState.All: return(p => p.BankCardId == id); case EntryState.Approve: return(p => p.BankCardId == id && !p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Pardakht: return(p => p.BankCardId == id && p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Archive: return(p => p.BankCardId == id && p.IsReject || p.IsPardakht); default: return(null); } } else { switch (state) { case EntryState.All: return(p => p.BankCardId == id && (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter))); case EntryState.Approve: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && (p.BankCardId == id && !p.IsApprove && !p.IsPardakht && !p.IsReject)); } case EntryState.Pardakht: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && (p.BankCardId == id && p.IsApprove && !p.IsPardakht && !p.IsReject)); } case EntryState.Archive: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && p.BankCardId == id && (p.IsReject || p.IsPardakht)); } default: return(p => p.BankCardId == id && (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter))); } } case SearchIdEnums.Wallet: if (string.IsNullOrEmpty(Filter) || string.IsNullOrWhiteSpace(Filter)) { switch (state) { case EntryState.All: return(p => p.WalletId == id); case EntryState.Approve: return(p => p.WalletId == id && !p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Pardakht: return(p => p.WalletId == id && p.IsApprove && !p.IsPardakht && !p.IsReject); case EntryState.Archive: return(p => p.WalletId == id && p.IsReject || p.IsPardakht); default: return(null); } } else { switch (state) { case EntryState.All: return(p => p.WalletId == id && (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter))); case EntryState.Approve: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && (p.WalletId == id && !p.IsApprove && !p.IsPardakht && !p.IsReject)); } case EntryState.Pardakht: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && (p.WalletId == id && p.IsApprove && !p.IsPardakht && !p.IsReject)); } case EntryState.Archive: { return(p => (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter)) && p.WalletId == id && (p.IsReject || p.IsPardakht)); } default: return(p => p.WalletId == id && (p.Id.Contains(Filter) || p.TextForUser.Contains(Filter) || p.BankName.Contains(Filter) || p.OwnerName.Contains(Filter) || p.Shaba.Contains(Filter) || p.CardNumber.Contains(Filter) || p.WalletName.Contains(Filter) || p.UserId.Contains(Filter) || p.BankCardId.Contains(Filter) || p.WalletId.Contains(Filter))); } } default: return(null); } }