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(); } }
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); }
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(); } }
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); }
public void Add(TripOffer offer) { offers.Add(offer); }