Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 public SearchVehicleReadModel GetAll(int page, int pageSize, SearchVehicleModel vehicleModel)
 {
     return(_vehicleRepository.GetAll(page, pageSize, vehicleModel));
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }