public IHttpActionResult Post(PassengerJourneyViewModel passengerJourney)
 {
     if (_adapter.AddPassenger(passengerJourney))
         return Ok();
     else
         return BadRequest("There are no more spots available");
 }
Esempio n. 2
0
        //(AllTrips VIEW: Shown only for passengers and drivers who want to be passengers in another trip) ADD A PASSENGER TO A JOURNEY
        //(WHEN USER CLICKS ON 'REQUEST SPOT')
        public bool AddPassenger(PassengerJourneyViewModel passengerJourney)
        {
            using (ApplicationDbContext db = new ApplicationDbContext())
            {

                if ((db.DriverJourneys.FirstOrDefault(x => x.Id == passengerJourney.TripId).SeatsAvailable) <= 0)
                    return false;
                else
                    db.DriverJourneys.FirstOrDefault(x => x.Id == passengerJourney.TripId).SeatsAvailable -= passengerJourney.NumSeats;

                if (db.PassengerJourneys.Any(x => x.User.UserName == passengerJourney.Username && x.DriverJourneyId == passengerJourney.TripId))
                {
                    PassengerJourney pj = db.PassengerJourneys.FirstOrDefault(x => x.User.UserName == passengerJourney.Username && x.DriverJourneyId == passengerJourney.TripId);
                    pj.NumSeats += passengerJourney.NumSeats;
                    pj.IsConfirmed = false;
                    db.SaveChanges();
                    return true;
                }

                db.PassengerJourneys.AddOrUpdate(x => x.Id, new PassengerJourney()
                {
                    UserId = db.Users.FirstOrDefault(x => x.UserName == passengerJourney.Username).Id,

                    DriverJourneyId = passengerJourney.TripId,
                    IsConfirmed = false,
                    NumSeats = passengerJourney.NumSeats
                });

                db.SaveChanges();
                return true;
            }
        }
Esempio n. 3
0
 //(UserTrips VIEW: Shown only for drivers) Accept a request for a spot in a car from a passenger
 public void AcceptRequest(PassengerJourneyViewModel trip)
 {
     using (ApplicationDbContext db = new ApplicationDbContext())
     {
         PassengerJourney pj = db.PassengerJourneys.FirstOrDefault(x => x.DriverJourneyId == trip.TripId && x.User.UserName == trip.Username);
         pj.IsConfirmed = true;
         db.SaveChanges();
     }
 }
 public IHttpActionResult Put(PassengerJourneyViewModel trip)
 {
     _adapter.AcceptRequest(trip);
     return Ok();
 }
 public IHttpActionResult Post(PassengerJourneyViewModel trip)
 {
     _adapter.CancelRequest(trip);
     return Ok();
 }
Esempio n. 6
0
        //(UserTrips VIEW: Shown for passengers and drivers who are passengers in other trips)
        //Cancel a request for a spot in a car for a passenger
        public void CancelRequest(PassengerJourneyViewModel trip)
        {
            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                PassengerJourney pj = db.PassengerJourneys.FirstOrDefault(x => x.DriverJourneyId == trip.TripId && x.User.UserName == trip.Username);

                db.DriverJourneys.FirstOrDefault(x => x.Id == trip.TripId).SeatsAvailable += pj.NumSeats;

                db.PassengerJourneys.Remove(pj);
                db.SaveChanges();
            }
        }