public async Task <ActionResult> GetUser()
        {
            // Get the userId from the token
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (userId == null)
            {
                return(Unauthorized());
            }

            var user = await _repo.GetUserById(userId);

            if (user == null)
            {
                return(BadRequest());
            }

            if (user.CurrentUserMode == UserMode.Driver)
            {
                var driver = _mapper.Map <DriverDTO>(user);
                return(Ok(driver));
            }

            var propertyOwner = _mapper.Map <PropertyOwnerDTO>(user);

            return(Ok(propertyOwner));
        }
        public async Task <ActionResult> GetPaymentCard()
        {
            // Get the userId from the token
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            var user = await _repo.GetUserById(userId);

            var paymentCard = user.PaymentCard;

            var paymentCardToReturn = _mapper.Map <PaymentCardDTO>(paymentCard);

            return(Ok(paymentCardToReturn));
        }
예제 #3
0
        public async Task <ActionResult> CreateParkingLot(string userId, ParkingLotCreateDTO parkingLotCreateDTO)
        {
            // Check to see if the user is the current user as pass the token up to our server
            if (userId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            {
                return(Unauthorized());
            }

            var userFromRepo = await _repo.GetUserById(userId);

            var parkinglot = _mapper.Map <ParkingLot>(parkingLotCreateDTO);

            parkinglot.Photos        = new List <Photo>();
            parkinglot.NumberOfSlots = 1;
            parkinglot.IsAvailable   = true;

            userFromRepo.ParkingLots.Add(parkinglot);

            // Save a new parkingLot
            if (await _repo.SaveAll())
            {
                var parkinglotToReturn = _mapper.Map <ParkingLotDTO>(parkinglot);
                return(CreatedAtRoute("GetParkingLot", new { id = parkinglot.Id }, parkinglotToReturn));
            }


            return(BadRequest("Could not add the parking lot"));
        }
        public async Task <ActionResult> GetUser(string id)
        {
            if (id == null)
            {
                return(BadRequest());
            }

            var user = await _repo.GetUserById(id);

            if (user == null)
            {
                return(BadRequest("User does not exsit!"));
            }

            var userToReturn = _mapper.Map <UserForAdminDTO>(user);

            return(Ok(userToReturn));
        }
        public async Task <ActionResult> CreateVehicle(VehicleDTO vehicleDTO)
        {
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            var userFromRepo = await _repo.GetUserById(userId);

            var vehicle = _mapper.Map <Vehicle>(vehicleDTO);

            userFromRepo.Vehicles.Add(vehicle);

            if (await _repo.SaveAll())
            {
                var vehicleToReturn = _mapper.Map <VehicleDTO>(vehicle);
                return(Ok(vehicleToReturn));
            }

            return(BadRequest("Could not add vehicle"));
        }
        public async Task <ActionResult> CreateReservation(int parkingLotId, ReservationCreateDTO reservationCreateDTO)
        {
            // Get the userId from the token
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            var userFromRepo = await _repo.GetUserById(userId);

            var reservation = _mapper.Map <Reservation>(reservationCreateDTO);

            var vehicle = userFromRepo.Vehicles.FirstOrDefault();

            var parkinglot = await _repo.GetParkingLotById(parkingLotId);


            if (vehicle != null && parkinglot != null)
            {
                _repo.Add(reservation);
            }
            else
            {
                BadRequest("Could not add the reservation");
            }

            // Save a new reservation
            if (await _repo.SaveAll())
            {
                // For driver
                var userReservation = new AppUserReservation
                {
                    User          = userFromRepo,
                    UserId        = userId,
                    Reservation   = reservation,
                    ReservationId = reservation.Id
                };

                _repo.Add(userReservation);

                // For owner
                var ownerReservation = new AppUserReservation
                {
                    User          = parkinglot.User,
                    UserId        = parkinglot.UserId,
                    Reservation   = reservation,
                    ReservationId = reservation.Id
                };

                _repo.Add(ownerReservation);

                var reservedParkingLot = new ReservedParkingLot
                {
                    PhotoUrl   = parkinglot.PhotoUrl,
                    Title      = parkinglot.Title,
                    City       = parkinglot.City,
                    Address    = parkinglot.Address,
                    PostalCode = parkinglot.PostalCode
                };

                //_repo.Add(reservedParkingLot);

                reservation.ReservedParkingLot = reservedParkingLot;

                if (await _repo.SaveAll())
                {
                    var reservationToReturn = _mapper.Map <ReservationDTO>(reservation);
                    return(CreatedAtRoute("GetReservation", new { id = reservation.Id }, reservationToReturn));
                }
            }

            return(BadRequest("Could not add the reservation"));
        }