Esempio n. 1
0
        public void ApproveBooking(List <User> users, User user, string requestId)
        {
            string tripPassenger = null;
            int    passengerIndex;
            string tripId = null;

            foreach (var TripRequest in user.TripRequests)
            {
                if (TripRequest.RequestId == requestId)
                {
                    tripId        = TripRequest.TripId;
                    tripPassenger = TripRequest.TripPassenger;
                }
            }

            passengerIndex = users.FindIndex(item => item.Username == tripPassenger);

            for (int i = 0; i < user.TripOffers.Count; i++)
            {
                TripOffer tripOffer = user.TripOffers[i];
                if (tripOffer.TripOfferId == tripId)
                {
                    tripOffer.SeatsOccupied++;
                    tripOffer.SeatsLeft--;

                    user.Bookings.Add(new TripBooking(tripOffer.TripOfferId, tripOffer.Date, tripOffer.Time, tripOffer.Source, tripOffer.Destination, tripOffer.Distance, tripOffer.TotalCost, tripOffer.CostPerHead, user.Username));
                    users[passengerIndex].Bookings.Add(new TripBooking(tripOffer.TripOfferId, tripOffer.Date, tripOffer.Time, tripOffer.Source, tripOffer.Destination, tripOffer.Distance, tripOffer.CostPerHead, tripOffer.CostPerHead, user.Username));

                    if (tripOffer.SeatsLeft == 0)
                    {
                        user.TripOffers.Remove(tripOffer);
                    }
                }
            }
        }
        public void JoinTripRequest(string username, string tripOfferId)
        {
            using (var db = new UserContext())
            {
                TripOffer tripOffer = db.TripOffers
                                      .FirstOrDefault(trip => trip.TripOfferId == tripOfferId);


                db.TripRequests.Add(new TripRequest(tripOffer.Username, username, tripOffer.TripOfferId));
                db.SaveChanges();
            }
        }
Esempio n. 3
0
        public string ShowTripOffer(User user)
        {
            string tripOffers = "";

            for (int i = 0; i < user.TripOffers.Count; i++)
            {
                TripOffer Trip = user.TripOffers[i];
                tripOffers += "\n\n" + Trip.TripOfferId + " | Driver : " + Trip.Driver + " | " + Trip.Date + " | " + Trip.Time + " | " + Trip.Source + " to " + Trip.Destination + " | " + Trip.Distance + "kms | " + Trip.Car.CarModel + " | " + Trip.Car.CarNumber + " | Total Seats : " + Trip.TotalSeats + " | Seats Left : " + Trip.SeatsLeft + " | Total Cost : " + Trip.TotalCost;
            }


            return(tripOffers);
        }
Esempio n. 4
0
        public IActionResult Add([FromBody] TripOffer offer)
        {
            if (offer.StarTime <= DateTime.Now || offer.EndTime <= DateTime.Now)
            {
                return(BadRequest("Start and end time must be in the future!"));
            }
            if (offer.StarTime >= offer.EndTime)
            {
                return(BadRequest("Start time must be after end time!"));
            }

            var domain = offer.ToDomain(destRepo);

            return(domain.Match <IActionResult>(
                       some: o => {
                repo.Add(o);
                return Ok(new TripOffer(o));
            },
                       none: msg => BadRequest(msg)
                       ));
        }
        public void ApproveTripJoinRequest(string requestId)
        {
            using (var db = new UserContext())
            {
                var tripRequest = db.TripRequests
                                  .First(trip => trip.RequestId == requestId);

                string    tripOfferId = tripRequest.TripOfferId;
                string    passenger   = tripRequest.TripPassenger;
                TripOffer tripDetails = db.TripOffers.First(trip => trip.TripOfferId == tripOfferId);
                tripDetails.SeatsLeft--;
                tripDetails.SeatsOccupied++;
                db.SaveChanges();

                db.TripBookings.Add(new TripBooking(tripDetails.TripOfferId, tripDetails.Date, tripDetails.Time, tripDetails.Source, tripDetails.Destination, tripDetails.Distance, tripDetails.CostPerHead, tripDetails.Username, passenger));
                db.SaveChanges();


                var req = db.TripRequests.First(request => request.RequestId == requestId);
                db.TripRequests.Remove(req);
                db.SaveChanges();
            }
        }
Esempio n. 6
0
        public string SearchTrips(List <User> users, string date, string source, string destination)
        {
            string tripOffers = "";
            int    tripCount  = 0;

            foreach (var user in users)
            {
                for (int i = 0; i < user.TripOffers.Count; i++)
                {
                    TripOffer Trip = user.TripOffers[i];
                    if (Trip.Date == date && Trip.Source == source && Trip.Destination == destination)
                    {
                        tripCount++;
                        tripOffers += "\n\n" + Trip.TripOfferId + " | Driver : " + Trip.Driver + " | " + Trip.Date + " | " + Trip.Time + " | " + Trip.Source + " to " + Trip.Destination + " | " + Trip.Distance + "kms | " + Trip.Car.CarModel + " | " + Trip.Car.CarNumber + " | Total Seats : " + Trip.TotalSeats + " | Seats Left : " + Trip.SeatsLeft + " | Total Cost : " + Trip.TotalCost;
                    }
                }
            }
            if (tripCount == 0)
            {
                tripOffers = "No trips found!!";
            }

            return(tripOffers);
        }
Esempio n. 7
0
 public void Add(TripOffer offer)
 {
     offers.Add(offer);
 }