public Task <SearchVehicleResponse> GetAll(SearchVehicleRequest request) { try { var vehicleModel = new SearchVehicleModel { Code = request.code, LicensePlate = request.licensePlate, Name = request.name, VehicleType = request.vehicleTypeID }; var infoSearchVehicle = _vehicleService.GetAll(request.Page, request.PageSize, vehicleModel); var allVehicle = from a in infoSearchVehicle.Vehicles select new { Code = a.Code, Type = _vehicleTypeService.Get(a.VehicleType), Name = a.Name, LicensePlate = a.LicensePlate, ID = a.Id, MaxLoad = a.MaxLoad, Driver = _driverService.Get(a.Driver), MaxVolume = a.Volume?.Split('-').Select(int.Parse), Note = a.Note }; var result = new SearchVehicleResponse { Page = infoSearchVehicle.PageInfo.Page, PageSize = infoSearchVehicle.PageInfo.PageSize, Total = infoSearchVehicle.PageInfo.Total, Status = new StatusResponse { Content = "", OK = true }, Vehicles = allVehicle.ToList() }; return(Task.FromResult(result)); } catch (Exception ex) { var result = new SearchVehicleResponse { Page = request.Page, PageSize = request.PageSize, Total = 0, Status = new StatusResponse { Content = ex.Message, OK = false }, Vehicles = null }; return(Task.FromResult(result)); } }
public SearchVehicleReadModel GetAll(int page, int pageSize, SearchVehicleModel vehicleModel) { return(_vehicleRepository.GetAll(page, pageSize, vehicleModel)); }
public async Task <ActionResult <IEnumerable <Vehicle> > > SearchVehicles(int companyId, SearchVehicleModel vehicle) { var racCompany = await _context.RentACarCompanies .Include(x => x.Vehicles) .ThenInclude(y => y.FreeDates) .FirstOrDefaultAsync(x => x.Id == companyId); if (racCompany == null) { return(NotFound()); } var vehicles = racCompany.Vehicles; if (vehicle.FromDate.Date.ToString("d") != new DateTime(2001, 1, 1).Date.ToString("d") && vehicle.ToDate.Date.ToString("d") != new DateTime(2001, 1, 1).Date.ToString("d")) { vehicles = vehicles.FindAll(x => CheckDates(x.FreeDates, vehicle.FromDate, vehicle.ToDate)); } if (!String.IsNullOrEmpty(vehicle.Brand)) { vehicles = vehicles.FindAll(x => x.Brand.ToLower().Contains(vehicle.Brand.ToLower())); } if (!String.IsNullOrEmpty(vehicle.Type)) { vehicles = vehicles.FindAll(x => x.Type == (VehicleType)Int32.Parse(vehicle.Type)); } if (!String.IsNullOrEmpty(vehicle.Seat)) { vehicles = vehicles.FindAll(x => x.NumberOfSeats == Int32.Parse(vehicle.Seat)); } return(vehicles); }
public SearchVehicleReadModel GetAll(int page, int pageSize, SearchVehicleModel vehicleModel) { using (IDbConnection conn = Connection) { //string sQuery = "SELECT Id, LicensePlate, Capacity, VehicleType, Volume, Code " + // " FROM Vehicle "; string sQuery = @"BEGIN DECLARE @totalRow INT-- tong ban ghi , @numPageTemp FLOAT --temp cho viec tinh tong so page , @maxPage INT; --so page thuc te SELECT @totalRow = COUNT(*) FROM dbo.Vehicle WHERE (@Code IS NULL OR LOWER(Code) = LOWER(@Code)) AND (@LicensePlate IS NULL OR LOWER(LicensePlate) like LOWER(@LicensePlate)) AND (@VehicleType = 0 OR VehicleType = @VehicleType) AND (@Name IS NULL OR LOWER(Name) like LOWER(@SearchName)); SELECT @numPageTemp = CAST(@totalRow AS FLOAT) / @pageSize; BEGIN IF @numPageTemp > CAST(@numPageTemp AS INT) SELECT @maxPage = CAST(@numPageTemp AS INT) + 1; IF @numPageTemp = CAST(@numPageTemp AS INT) SELECT @maxPage = CAST(@numPageTemp AS INT); IF @page > @maxPage SELECT @page = @maxPage END IF @totalRow > 0 BEGIN SELECT Id, LicensePlate, Capacity, VehicleType, Volume, Code, Name, MaxLoad, Driver, Note FROM dbo.Vehicle WHERE (@Code IS NULL OR LOWER(Code) = LOWER(@Code)) AND (@LicensePlate IS NULL OR LOWER(LicensePlate) like LOWER(@LicensePlate)) AND (@VehicleType = 0 OR VehicleType = @VehicleType) AND (@Name IS NULL OR LOWER(Name) like LOWER(@SearchName)) ORDER BY id OFFSET(@page - 1) * @pageSize ROWS FETCH NEXT @pageSize ROWS ONLY; END ELSE BEGIN SELECT Id, LicensePlate, Capacity, VehicleType, Volume, Code, Name, Driver, Note FROM dbo.Vehicle WHERE 1 != 1; END SELECT @page as Page, @pageSize as PageSize, @totalRow as Total; END "; //var result = conn.QueryAsync<VehicleReadModel>(sQuery, new //{ // page = page, // pageSize = pageSize //}); using (var multi = conn.QueryMultiple(sQuery, new { page = page, pageSize = pageSize, Code = vehicleModel.Code, LicensePlate = "%" + vehicleModel.LicensePlate + "%", VehicleType = vehicleModel.VehicleType, Name = vehicleModel.Name, SearchName = "%" + vehicleModel.Name + "%", })) { var vehicle = multi.Read <VehicleReadModel>(); var invoiceItems = multi.ReadFirstOrDefault <PagingReadModel>(); SearchVehicleReadModel searchVehicle = new SearchVehicleReadModel { Vehicles = vehicle, PageInfo = invoiceItems }; return(searchVehicle); } } }