public async Task <DataStorageResult <IEnumerable <CustomerAppointmentDataModel> > > GetCustomerAppointmentsAsync([ParameterDocumentation("Οι κανόνες αναζήτησης")] CustomerAppointmentDataStorageArgs args = null) { if (args == null) { args = new CustomerAppointmentDataStorageArgs(); } try { var query = (IQueryable <CustomerAppointmentDataModel>)DbContext.CustomerAppointmets.Include(x => x.Customer).Include(x => x.StaffMember); if (args.Search != null) { query = query.Where(x => x.Customer.NormalizedName.Contains(args.Search) || x.StaffMember.NormalizedName.Contains(args.Search)); } if (args.DateStartAfter != null) { query = query.Where(x => x.DateStart >= args.DateStartAfter); } if (args.DateStartBefore != null) { query = query.Where(x => x.DateStart <= args.DateStartBefore); } query = AttachParameters(query, args); return(await query.OrderByDescending(x => x.Id).ToListAsync()); } catch (Exception ex) { return(ex); } }
public async Task <DataStorageResult <IEnumerable <CustomerAppointmentDataModel> > > GetCustomerAppointmentsAsync([ParameterDocumentation("Ο δείκτης της σελίδας ξεκινώντας από το 0")] int page, [ParameterDocumentation("Οι κανόνες αναζήτησης")] CustomerAppointmentDataStorageArgs args = null) { if (args == null) { args = new CustomerAppointmentDataStorageArgs(); } try { var query = (IQueryable <CustomerAppointmentDataModel>)DbContext.CustomerAppointmets.Include(x => x.Customer).Include(x => x.StaffMember); if (args.Search != null) { query = query.Where(x => x.Customer.NormalizedName.Contains(args.Search) || x.StaffMember.NormalizedName.Contains(args.Search)); } if (args.DateStartAfter != null) { query = query.Where(x => x.DateStart >= args.DateStartAfter); } if (args.DateStartBefore != null) { query = query.Where(x => x.DateStart <= args.DateStartBefore); } if (!args.StaffMembers.IsNullOrEmpty()) { query = query.Where(x => args.StaffMembers.Contains(x.StaffMemberId)); } if (!args.Customers.IsNullOrEmpty()) { query = query.Where(x => args.Customers.Contains(x.CustomerId)); } query = AttachParameters(query, args); return(await query.OrderByDescending(x => x.Id).Skip((page * PerPage) + args.Offset).Take(PerPage).ToListAsync()); } catch (Exception ex) { return(ex); } }