예제 #1
0
        public override List <Model.Vehicle> Get(VehicleSearchRequest search)
        {
            var query = _context.Vehicles.Include(e => e.VehicleType).Include(e => e.Fuel)
                        .Include(e => e.Brand).Include(e => e.VehicleModel).AsQueryable();

            if (!string.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(w => w.Name.Contains(search.Name));
            }

            if (search.BrandId > 0)
            {
                query = query.Where(w => w.BrandId == search.BrandId);
            }

            if (search.IsActive == false)
            {
                query = query.Where(w => w.IsActive == false);
            }
            if (search.IsActive == true)
            {
                query = query.Where(w => w.IsActive == true);
            }



            return(_mapper.Map <List <Model.Vehicle> >(query.ToList()));
        }
예제 #2
0
        public IEnumerable <Vehicle> GetByCriteria(VehicleSearchRequest request)
        {
            var vehicles = _repository.GetAll();

            if (!string.IsNullOrWhiteSpace(request.Code))
            {
                vehicles = vehicles.Where(x => x.Code.ToLower().Contains(request.Code.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(request.Model))
            {
                vehicles = vehicles.Where(x => x.Model.ToLower().Contains(request.Model.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(request.Brand))
            {
                vehicles = vehicles.Where(x => x.Brand.ToLower().Contains(request.Brand.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(request.RegistrationPlate))
            {
                vehicles = vehicles.Where(x => x.RegistrationPlate.ToLower().Contains(request.RegistrationPlate.ToLower()));
            }

            return(vehicles);
        }
예제 #3
0
        /// <summary>
        /// Get Vehicles
        /// </summary>
        public HireGroupVehiclesResponse Post(VehicleSearchRequest request)
        {
            if (request == null || !ModelState.IsValid)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request");
            }

            return(vehicleService.GetByHireGroup(request).CreateFromFoRa());
        }
예제 #4
0
        /// <summary>
        /// Get Upgraded Vehicles By HireGroup
        /// </summary>
        public GetVehicleResponse GetUpgradedVehiclesByHireGroup(VehicleSearchRequest request)
        {
            var subQuery = from hireGroupDetail in db.HireGroupDetails
                           join hireGroupUpGrade in db.HireGroupUpGrades on hireGroupDetail.HireGroupId equals hireGroupUpGrade.HireGroupId into hireGroupUpgradeSet
                           from hgu in hireGroupUpgradeSet.DefaultIfEmpty()
                           where (hireGroupDetail.HireGroupDetailId == request.HireGroupDetailId || request.HireGroupDetailId == 0)
                           join hireGroup in db.HireGroups on hireGroupDetail.HireGroupId equals hireGroup.HireGroupId
                           where (hireGroupDetail.HireGroupDetailId == request.HireGroupDetailId || request.HireGroupDetailId == 0)
                           select hireGroupDetail;

            var query = from hireGroupDetail in db.HireGroupDetails
                        join hireGroup in subQuery on hireGroupDetail.HireGroupId equals hireGroup.HireGroupId
                        where (hireGroupDetail.HireGroupDetailId == request.HireGroupDetailId || request.HireGroupDetailId == 0)
                        join vc in db.VehicleCategories on hireGroupDetail.VehicleCategoryId equals vc.VehicleCategoryId
                        join vm in db.VehicleMakes on hireGroupDetail.VehicleMakeId equals vm.VehicleMakeId
                        join vmod in db.VehicleModels on hireGroupDetail.VehicleModelId equals vmod.VehicleModelId
                        join v in db.Vehicles on new { vc.VehicleCategoryId, vm.VehicleMakeId, vmod.VehicleModelId, hireGroupDetail.ModelYear } equals
            new { v.VehicleCategoryId, v.VehicleMakeId, v.VehicleModelId, v.ModelYear }
            join vs in db.VehicleStatuses on v.VehicleStatusId equals vs.VehicleStatusId
            where vs.AvailabilityCheck
            join fleetPool in db.FleetPools on v.FleetPoolId equals fleetPool.FleetPoolId
            join owp in db.OperationsWorkPlaces on fleetPool.FleetPoolId equals owp.FleetPoolId
            where owp.OperationsWorkPlaceId == request.OperationsWorkPlaceId
            join vr in db.VehicleReservations on v.VehicleId equals vr.VehicleId into vehicleGroup
            from vg in vehicleGroup.DefaultIfEmpty()
            where vg.EndDtTime >= request.StartDtTime && vg.StartDtTime <= request.EndDtTime
            orderby hireGroup.HireGroup.HireGroupCode, hireGroup.HireGroup.HireGroupName
            group v by new
            {
                hireGroup.HireGroupId,
                hireGroup.HireGroup.HireGroupCode,
                hireGroup.HireGroup.HireGroupName,
                hireGroupDetail.HireGroupDetailId,
                hireGroupDetail.VehicleCategoryId,
                hireGroupDetail.VehicleMakeId,
                hireGroupDetail.VehicleModelId,
                vm.VehicleMakeCode,
                vm.VehicleMakeName,
                vc.VehicleCategoryCode,
                vc.VehicleCategoryName,
                vmod.VehicleModelCode,
                vmod.VehicleModelName,
                v.ModelYear
            } into vehicle
            select vehicle;

            return(new GetVehicleResponse {
                Vehicles = query.SelectMany(hgd => hgd).Distinct().ToList()
            });
        }
예제 #5
0
        /// <summary>
        /// Get By Hire Group
        /// </summary>
        public GetVehicleResponse GetByHireGroup(VehicleSearchRequest request)
        {
            if (request.AllocationStatusKey == (short)AllocationStatusEnum.Replaced)
            {
                request.HireGroupDetailId = 0;
            }
            else if (request.AllocationStatusKey == (short)AllocationStatusEnum.Upgraded)
            {
                // Get Upgraded Hire Groups
                return(vehicleRepository.GetUpgradedVehiclesByHireGroup(request));
            }

            return(vehicleRepository.GetByHireGroup(request));
        }
예제 #6
0
        public override List <Model.Vehicle> GetAll(VehicleSearchRequest request)
        {
            var query = _context.Set <Database.Vehicle>().AsQueryable();

            /*  if (!string.IsNullOrEmpty(request.Name))
             * {
             *    query = query.Where(x => x.Name.Contains(request.Name));
             * }*/
            var list     = query.Include(i => i.Model).ToList();
            var vehicles = _mapper.Map <List <Model.Vehicle> >(list);

            /*   foreach (var vehicle in vehicles)
             * {
             *     vehicle.vehicle = vehicle.Name + " " + vehicle.RegistrationNumber;
             * }*/
            return(vehicles);
        }
예제 #7
0
        public async Task Init()
        {
            search_request1.Username = APIService.Username;
            var instructors = await _instructorsService.GetAll <List <Instructor> >(search_request1);

            var instructor = instructors[0];            // Returns logged in instructor

            InstructorCategorySearchRequest search_request2 = new InstructorCategorySearchRequest();

            search_request2.InstructorId = instructor.Id;
            var instructors_categories = await _instructor_categoriesService.GetAll <List <Instructor_Category> >(search_request2); // Returns all categories of logged in instructor

            InstructorCategoryCandidateSearchRequest search_request3 = new InstructorCategoryCandidateSearchRequest();

            search_request3.PolozenTeorijskiTest  = true;
            search_request3.PolozenTestPrvePomoci = true;
            search_request3.PolozenPrakticniTest  = false;
            search_request3.Prijavljen            = false;
            search_request3.InstructorId          = instructor.Id;
            foreach (var instructor_category in instructors_categories)
            {
                //search_request3.Instructor_CategoryId = instructor_category.Id;
                search_request3.CategoryId = instructor_category.CategoryId;
                var instructors_categories_candidates = await _instructor_categories_candidateService.GetAll <List <Instructor_Category_Candidate> >(search_request3); // Returns all users of logged in instructors and all categories of that instructor

                foreach (var instructor_category_candidate in instructors_categories_candidates)
                {
                    var candidate = await _candidatesService.GetById <Candidate>(instructor_category_candidate.CandidateId);

                    candidate.category           = instructor_category_candidate.Instructor_Category.Category.Name;
                    candidate.candidate_category = candidate.candidate + " " + "(" + candidate.category + ")";
                    CandidatesList.Add(candidate);
                }
            }

            VehicleSearchRequest vehicle_search_request = new VehicleSearchRequest();
            var vehicles = await _vehiclesService.GetAll <List <Vehicle> >(null);

            foreach (var vehicle in vehicles)
            {
                vehicle.vehicle = vehicle.Model.Name + " " + "(" + vehicle.RegistrationNumber + ")";
                VehiclesList.Add(vehicle);
            }
        }
예제 #8
0
        public async Task Init()
        {
            if (VehicleFuelTypeList.Count == 0)
            {
                var vfList = await _vehicleFuelService.Get <List <VehicleFuelTypeModel> >(null);

                foreach (var x in vfList)
                {
                    VehicleFuelTypeList.Add(x);
                }
            }

            if (VehicleTransmissionList.Count == 0)
            {
                var vtList = await _vehicleTransmissionService.Get <List <VehicleTransmissionTypeModel> >(null);

                foreach (var x in vtList)
                {
                    VehicleTransmissionList.Add(x);
                }
            }

            if (SelectedFuelType != null || SelectedTransmissionType != null)
            {
                VehicleSearchRequest request = new VehicleSearchRequest();
                if (SelectedFuelType != null)
                {
                    request.VehicleFuelTypeId = SelectedFuelType.VehicleFuelTypeId;
                }
                if (SelectedTransmissionType != null)
                {
                    request.VehicleTransmissionTypeId = SelectedTransmissionType.VehicleTransmissionTypeId;
                }

                await LoadVehicles(request);
                await LoadRecommendedVehicles(request);
            }

            if (SelectedFuelType == null && SelectedTransmissionType == null)
            {
                await LoadVehicles();
                await LoadRecommendedVehicles();
            }
        }
예제 #9
0
        private async Task LoadVehicles(int?manufacturerId = 0, int?fuelId = 0, int?transmissionId = 0)
        {
            var manufacturerList = await _vehicleManufacturerService.Get <List <VehicleManufacturerModel> >(null);

            var fuelList = await _vehicleFuelTypeService.Get <List <VehicleFuelTypeModel> >(null);

            var transmissionList = await _vehicleTransmissionService.Get <List <VehicleTransmissionTypeModel> >(null);

            var modelsList = await _vehicleModelService.Get <List <VehicleModelModel> >(null);

            if (manufacturerId != 0 || fuelId != 0 || transmissionId != 0)
            {
                var request = new VehicleSearchRequest();
                if (manufacturerId != 0)
                {
                    request.VehicleManufacturerId = manufacturerId;
                }
                if (fuelId != 0)
                {
                    request.VehicleFuelTypeId = fuelId;
                }
                if (transmissionId != 0)
                {
                    request.VehicleTransmissionTypeId = transmissionId;
                }

                var vehicleList = await _vehicleService.Get <List <OpenRoads.Model.VehicleModel> >(request);

                var result = GenerateResult(vehicleList, manufacturerList, fuelList, transmissionList, modelsList);

                dgvVehicle.AutoGenerateColumns = false;
                dgvVehicle.DataSource          = result;
            }
            else
            {
                var vehicleList = await _vehicleService.Get <List <OpenRoads.Model.VehicleModel> >(null);

                var result = GenerateResult(vehicleList, manufacturerList, fuelList, transmissionList, modelsList);

                dgvVehicle.AutoGenerateColumns = false;
                dgvVehicle.DataSource          = result;
            }
        }
        private async void btnShowVehicles_Click(object sender, EventArgs e)
        {
            var search = new VehicleSearchRequest()
            {
                ManufacturerName   = txtSearchVehicle.Text,
                ModelName          = txtModelName.Text,
                Transmission       = txtTransmission.Text,
                RegistrationNumber = txtRegistrationNumber.Text,
                FuelName           = txtFuelName.Text,
                BranchName         = txtBranchName.Text
            };
            var result = await _service.Get <List <Data.Model.Vehicle> >(search);

            List <frmAllVehiclesVM> finalList = new List <frmAllVehiclesVM>();

            foreach (var item in result)
            {
                frmAllVehiclesVM form = new frmAllVehiclesVM
                {
                    VehicleId          = item.VehicleId,
                    ManufacturerName   = item.VehicleModel.Manufacturer.ManufacturerName,
                    ModelName          = item.VehicleModel.ModelName,
                    RegistrationNumber = item.RegistrationNumber,
                    Image         = item.Image,
                    Mileage       = item.Mileage,
                    Transmission  = item.Transmission,
                    NumberOfSeats = item.NumberOfSeats,
                    FuelName      = item.FuelType.FuelName,
                    BranchName    = item.Branch.BranchName
                };
                finalList.Add(form);
            }
            dgvVehicles.AutoGenerateColumns = false;
            dgvVehicles.DataSource          = finalList;

            if (finalList.Count == 0)
            {
                MessageBox.Show("There are no results for this search", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
예제 #11
0
        /// <summary>
        /// Get Vehicle List Based On Search Criteria
        /// </summary>
        public GetVehicleResponse GetVehicles(VehicleSearchRequest request)
        {
            int fromRow = (request.PageNo - 1) * request.PageSize;
            int toRow   = request.PageSize;
            Expression <Func <Vehicle, bool> > query =
                s => (string.IsNullOrEmpty(request.SearchString) || s.VehicleName.Contains(request.SearchString) || s.PlateNumber.Contains(request.SearchString)) &&
                (string.IsNullOrEmpty(request.HireGroupString) || s.VehicleMake.VehicleMakeCode.Contains(request.HireGroupString) || s.VehicleMake.VehicleMakeName.Contains(request.HireGroupString) ||
                 s.VehicleModel.VehicleModelCode.Contains(request.HireGroupString) || s.VehicleModel.VehicleModelName.Contains(request.HireGroupString) ||
                 s.VehicleCategory.VehicleCategoryCode.Contains(request.HireGroupString) || s.VehicleCategory.VehicleCategoryName.Contains(request.HireGroupString)) &&
                (request.OperationId == null || s.OperationsWorkPlace.Operation.OperationId == request.OperationId) &&
                (request.FleetPoolId == null ||
                 s.FleetPoolId == request.FleetPoolId);

            IEnumerable <Vehicle> vehicles = request.IsAsc ? DbSet.Where(query)
                                             .OrderBy(vehicleOrderByClause[request.VehicleOrderBy]).Skip(fromRow).Take(toRow).ToList()
                                            : DbSet.Where(query)
                                             .OrderByDescending(vehicleOrderByClause[request.VehicleOrderBy]).Skip(fromRow).Take(toRow).ToList();

            return(new GetVehicleResponse {
                Vehicles = vehicles, TotalCount = DbSet.Count(query)
            });
        }
        //Load search vehicles

        public async Task Load()
        {
            var request = new VehicleSearchRequest
            {
                ManufacturerName = ManufacturerName,
                BranchName       = BranchName
            };

            var list = await _vehicleService.Get <IEnumerable <Data.Model.Vehicle> >(request);

            VehicleList.Clear();

            foreach (var item in list)
            {
                VehicleList.Add(item);
            }

            if (VehicleList.Count == 0)
            {
                await Application.Current.MainPage.DisplayAlert("Warning", "We do not offer this brand of vehicle", "Try again");
            }
        }
예제 #13
0
        private async Task LoadRecommendedVehicles(VehicleSearchRequest request = null)
        {
            var vehicleManufacturers = await _vehicleManufacturerService.Get <List <VehicleManufacturerModel> >(null);

            var vehicleModels = await _vehicleModelService.Get <List <VehicleModelModel> >(null);

            var reservationsList = await _reservationService.Get <List <ReservationModel> >(null);

            var recommenderVehicles = await _recommenderService.GetById <List <VehicleModel> >(APIService.LoggedUserId);

            DateTime dateToCheck = new DateTime(0001, 1, 1);

            bool vehicleRented = false;

            RecommendedVehiclesList.Clear();

            if (recommenderVehicles.Count <= 3)
            {
                foreach (var x in recommenderVehicles)
                {
                    vehicleRented = false;

                    foreach (var reservation in reservationsList)
                    {
                        if (reservation.VehicleId == x.VehicleId)
                        {
                            if (SelectedDateTo != dateToCheck)
                            {
                                if (SelectedDateFrom >= reservation.DateFrom && SelectedDateFrom <= reservation.DateTo)
                                {
                                    vehicleRented = true;
                                }

                                if ((SelectedDateFrom < reservation.DateFrom && SelectedDateFrom < reservation.DateTo) &&
                                    (SelectedDateTo >= reservation.DateFrom && SelectedDateTo <= reservation.DateTo))
                                {
                                    vehicleRented = true;
                                }

                                if (reservation.DateFrom >= SelectedDateFrom && reservation.DateTo <= SelectedDateTo)
                                {
                                    if (reservation.DateTo > DateTime.Now)
                                    {
                                        vehicleRented = true;
                                    }
                                }
                            }
                        }
                    }

                    if (!vehicleRented)
                    {
                        VehicleToDisplay newVehicle = new VehicleToDisplay();
                        newVehicle.VehicleId        = x.VehicleId;
                        newVehicle.Available        = x.Available;
                        newVehicle.Picture          = x.Picture;
                        newVehicle.DailyPrice       = x.PriceByDay + " KM";
                        newVehicle.PowerHP          = x.PowerInHp + " hp";
                        newVehicle.ManufacturedYear = x.ManufacturedYear;

                        foreach (var model in vehicleModels)
                        {
                            if (x.VehicleModelId == model.VehicleModelId)
                            {
                                foreach (var manufacturer in vehicleManufacturers)
                                {
                                    if (model.VehicleManufacturerId == manufacturer.VehicleManufacturerId)
                                    {
                                        newVehicle.VehicleName = manufacturer.Name + " " + model.Name;
                                        break;
                                    }
                                }

                                break;
                            }
                        }
                        RecommendedVehiclesList.Add(newVehicle);
                    }
                }
            }
        }
예제 #14
0
 public IEnumerable <VehicleSearchResponseVehicleSearchResult> FindVehicles(VehicleSearchRequest query)
 {
     return(SubmitRequest <VehicleSearchResponse>(query).Items);
 }
예제 #15
0
        public IActionResult GetByCriteria([FromQuery]VehicleSearchRequest request)
        {
            var vehicles = _vehicleService.GetByCriteria(request);

            return Ok(vehicles);
        }
예제 #16
0
 /// <summary>
 /// Get Vehicles List Based on search Criteria
 /// </summary>
 /// <returns></returns>
 public GetVehicleResponse LoadVehicles(VehicleSearchRequest request)
 {
     return(vehicleRepository.GetVehicles(request));
 }
        private async void btnSacuvaj_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                request.RegistrationNumber = txtRegistrationNumber.Text;
                request.VehicleNumber      = int.Parse(txtVehicleNumber.Text);
                request.DailyPrice         = double.Parse(txtDailyPrice.Text);
                request.Description        = rtxDescription.Text;
                request.ManufacturerDate   = dtDte.Value;
                request.Mileage            = txtMileage.Text;
                request.Transmission       = txtTransmission.Text;
                request.NumberOfSeats      = int.Parse(txtNumberOfSeats.Text);
                request.Status             = chkStatus.Checked;

                // ove foreign moraju se posebno parsat

                var idBranch = cmbBranch.SelectedValue;

                if (int.TryParse(idBranch.ToString(), out int branchID))
                {
                    request.BranchId = branchID;
                }

                var idFuel = cmbFuelType.SelectedValue;

                if (int.TryParse(idFuel.ToString(), out int fuelid))
                {
                    request.FuelTypeId = fuelid;
                }

                var idVehicleType = cmbVehicleType.SelectedValue;

                if (int.TryParse(idVehicleType.ToString(), out int vehicletypeID))
                {
                    request.VehicleTypeId = vehicletypeID;
                }

                var idVehiclemodel = cmbVehicleModel.SelectedValue;

                if (int.TryParse(idVehiclemodel.ToString(), out int vehiclemodelID))
                {
                    request.VehicleModelId = vehiclemodelID;
                }


                var search = new VehicleSearchRequest
                {
                    RegistrationNumber = txtRegistrationNumber.Text
                };
                var list = await _serviceVehicle.Get <List <Data.Model.Vehicle> >(search);

                if (list.Count >= 1)
                {
                    MessageBox.Show("A car with this registration number already exists, please try again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    await _serviceVehicle.Insert <Data.Model.Vehicle>(request);

                    MessageBox.Show("Operation successfully completed!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
        }