public async Task <int> Count(Product_PaymentMethodFilter filter) { IQueryable <Product_PaymentMethodDAO> Product_PaymentMethodDAOs = DataContext.Product_PaymentMethod; Product_PaymentMethodDAOs = DynamicFilter(Product_PaymentMethodDAOs, filter); return(await Product_PaymentMethodDAOs.CountAsync()); }
public async Task <List <Product_PaymentMethod> > List(Product_PaymentMethodFilter filter) { if (filter == null) { return(new List <Product_PaymentMethod>()); } IQueryable <Product_PaymentMethodDAO> Product_PaymentMethodDAOs = DataContext.Product_PaymentMethod; Product_PaymentMethodDAOs = DynamicFilter(Product_PaymentMethodDAOs, filter); Product_PaymentMethodDAOs = DynamicOrder(Product_PaymentMethodDAOs, filter); var Product_PaymentMethods = await DynamicSelect(Product_PaymentMethodDAOs, filter); return(Product_PaymentMethods); }
private async Task <List <Product_PaymentMethod> > DynamicSelect(IQueryable <Product_PaymentMethodDAO> query, Product_PaymentMethodFilter filter) { List <Product_PaymentMethod> Product_PaymentMethods = await query.Select(q => new Product_PaymentMethod() { ProductId = filter.Selects.Contains(Product_PaymentMethodSelect.Product) ? q.ProductId : default(long), PaymentMethodId = filter.Selects.Contains(Product_PaymentMethodSelect.PaymentMethod) ? q.PaymentMethodId : default(long), PaymentMethod = filter.Selects.Contains(Product_PaymentMethodSelect.PaymentMethod) && q.PaymentMethod != null ? new PaymentMethod { Id = q.PaymentMethod.Id, Code = q.PaymentMethod.Code, Name = q.PaymentMethod.Name, Description = q.PaymentMethod.Description, } : null, Product = filter.Selects.Contains(Product_PaymentMethodSelect.Product) && q.Product != null ? new Product { Id = q.Product.Id, Code = q.Product.Code, Name = q.Product.Name, Description = q.Product.Description, TypeId = q.Product.TypeId, StatusId = q.Product.StatusId, MerchantId = q.Product.MerchantId, CategoryId = q.Product.CategoryId, BrandId = q.Product.BrandId, WarrantyPolicy = q.Product.WarrantyPolicy, ReturnPolicy = q.Product.ReturnPolicy, ExpiredDate = q.Product.ExpiredDate, ConditionOfUse = q.Product.ConditionOfUse, MaximumPurchaseQuantity = q.Product.MaximumPurchaseQuantity, } : null, }).ToListAsync(); return(Product_PaymentMethods); }
private IQueryable <Product_PaymentMethodDAO> DynamicOrder(IQueryable <Product_PaymentMethodDAO> query, Product_PaymentMethodFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case Product_PaymentMethodOrder.Product: query = query.OrderBy(q => q.Product.Id); break; case Product_PaymentMethodOrder.PaymentMethod: query = query.OrderBy(q => q.PaymentMethod.Id); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case Product_PaymentMethodOrder.Product: query = query.OrderByDescending(q => q.Product.Id); break; case Product_PaymentMethodOrder.PaymentMethod: query = query.OrderByDescending(q => q.PaymentMethod.Id); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <Product_PaymentMethodDAO> DynamicFilter(IQueryable <Product_PaymentMethodDAO> query, Product_PaymentMethodFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.ProductId != null) { query = query.Where(q => q.ProductId, filter.ProductId); } if (filter.PaymentMethodId != null) { query = query.Where(q => q.PaymentMethodId, filter.PaymentMethodId); } return(query); }