public async Task <IEnumerable <MeterDto> > Handle(GetAllMetersQuery request, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(request.Keyword)) { return(await _context.Meter .Join( _context.MeterVendor, m => m.VendorId, mv => mv.VendorId, (m, mv) => new MeterDto() { SerialNo = m.SerialNo, StreetName = m.StreetName, VendorName = mv.VendorName, VendorId = mv.VendorId } ).Skip((request.CurrentPage - 1) * request.PageSize).Take(request.PageSize) .ToListAsync(cancellationToken)); } else { return(await _context.Meter .Where(x => x.StreetName.Contains(request.Keyword) || x.Vendor.VendorName.Contains(request.Keyword)) .Join( _context.MeterVendor, m => m.VendorId, mv => mv.VendorId, (m, mv) => new MeterDto() { SerialNo = m.SerialNo, StreetName = m.StreetName, VendorName = mv.VendorName, VendorId = mv.VendorId } ).Skip((request.CurrentPage - 1) * request.PageSize).Take(request.PageSize) .ToListAsync(cancellationToken)); } }
public async Task <IEnumerable <SP_GetAllMeter_Result> > Handle(GetAllMetersQuery request, CancellationToken cancellationToken) { var meters = _functionImports.GetAllMeter(request.CurrentPage, request.PageSize, request.HCN, request.VendorId, request.GroupId).ToList(); return(meters); }