public IActionResult GetByCarSize([FromBody] ParkingSpaceRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var freeSpaces = _prkSpaceService.GetAvailablePrkSpacesByCarType(request);

            return(new JsonResult(freeSpaces));
        }
Example #2
0
        public IEnumerable <ParkingSpace> GetAvailablePrkSpacesByCarType(ParkingSpaceRequest request)
        {
            IEnumerable <ParkingSpace> freeSpaces         = null;
            List <ParkingSpace>        freeSpacesToReturn = new List <ParkingSpace>();

            switch (request.CarType)
            {
            case 1:    //(int)CarType.Small:
                freeSpaces = _prkSpaceRepo.GetAvailablePrkSpacesBySize(Constants.SMALL_CAR_MIN_SIZE, Constants.SMALL_CAR_MAX_SIZE);
                break;

            case 2:    //(int)CarType.Medium:
                freeSpaces = _prkSpaceRepo.GetAvailablePrkSpacesBySize(Constants.MEDIUM_CAR_MIN_SIZE, Constants.MEDIUM_CAR_MAX_SIZE);
                break;

            case 3:    //(int)CarType.Big:
                freeSpaces = _prkSpaceRepo.GetAvailablePrkSpacesBySize(Constants.BIG_CAR_MIN_SIZE, Constants.BIG_CAR_MAX_SIZE);
                break;
            }

            if (freeSpaces == null)
            {
                return(null);
            }

            foreach (var space in freeSpaces)
            {
                var fromDatabase = new Position()
                {
                    Latitude = space.Latitude, Longitude = space.Longitude
                };
                var fromRequest = new Position()
                {
                    Latitude = request.Latitude, Longitude = request.Longitude
                };

                var dist = Distance(fromRequest, fromDatabase);

                if (dist <= request.Range)
                {
                    freeSpacesToReturn.Add(space);
                }
            }

            return(freeSpacesToReturn);
        }
 public IEnumerable <ParkingSpace> GetAvailablePrkSpacesByLocation(ParkingSpaceRequest request)
 {
     throw new NotImplementedException();
 }