public async Task <IActionResult> List([FromBody] DriverListRequest model) { try { var result = await _driverService.List(model); return(Ok(result)); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IActionResult> List(DriverListRequest model) { List <Driver> driverList = await _db.Drivers .Where(x => (string.IsNullOrEmpty(model.DriverFullName) || x.DriverFullName.Contains(model.DriverFullName)) && (string.IsNullOrEmpty(model.Address) || x.Address.Contains(model.Address)) && (string.IsNullOrEmpty(model.DrivingLisenceNumber) || x.DrivingLisenceNumber.Contains(model.DrivingLisenceNumber)) && (string.IsNullOrEmpty(model.MobileNumber) || x.MobileNumber.Contains(model.MobileNumber)) && (!model.Status.HasValue || x.Status == model.Status) ) .OrderByDescending(d => d.CreatedAt).Include(x => x.User).ToListAsync(); int totalCount = driverList.Count(); var result = driverList.Skip((model.PageNumber - 1) * model.PageSize).Take(model.PageSize).Select(x => new DriverResponse { Address = x.Address, DriverFullName = x.DriverFullName, DriverGuid = x.DriverGuid, DrivingLisenceNumber = x.DrivingLisenceNumber, Id = x.Id, Latitude = x.User.Latitude, Longitude = x.User.Longitude, MobileNumber = x.MobileNumber, Status = x.Status, UserId = x.UserId, Username = x.User.UserName, IsActive = (bool)x.IsActive }).ToList(); if (result.Count() > 0) { MainResponse <List <DriverResponse> > finalResponse = new MainResponse <List <DriverResponse> >(result, totalCount); return(new OkObjectResult(finalResponse)); } throw new Exception("لا يوجد سائقين"); }