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));
            }
        }
Exemple #2
0
        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("لا يوجد سائقين");
        }