public string UpdateStatus(int id, StatusOfRide status) { try { var offer = _context.Offers.Find(id); switch (status) { case StatusOfRide.Cancelled: if (offer.Status == StatusOfRide.Created && offer.Source == offer.CurrentLocaton) { offer.Status = status; return(Status.Ok.ToString()); } else { return(Status.UnableToPerformAction.ToString()); } case StatusOfRide.Completed: if (offer.Status == StatusOfRide.Created) { offer.Status = status; _context.Bookings.ToList().ForEach(b => { if (b.OfferID == id) { if (b.Status == StatusOfRide.Accepted) { b.Status = StatusOfRide.Completed; } else { b.Status = StatusOfRide.Rejected; } } }); return(Status.Ok.ToString()); } else { return(Status.UnableToPerformAction.ToString()); } } return(Status.NotFound.ToString()); } catch (Exception) { return(Status.Failed.ToString()); } }
public string UpdateStatus(int id, StatusOfRide status) { try { var booking = _context.Bookings.Find(id); switch (status) { case StatusOfRide.Cancelled: if (booking.Status == StatusOfRide.Pending) { booking.Status = status; return(Status.Ok.ToString()); } else { return(Status.UnableToPerformAction.ToString()); } case StatusOfRide.Rejected: if (booking.Status == StatusOfRide.Pending) { booking.Status = status; return(Status.Ok.ToString()); } else { return(Status.UnableToPerformAction.ToString()); } case StatusOfRide.Accepted: if (_offerservice.ValidateOfferRoute(_context.Offers.Find(booking.OfferID), booking.Source, booking.Destination, booking.Seats)) { booking.Status = status; _context.SaveChanges(); return(Status.Ok.ToString()); } else { return(Status.UnableToPerformAction.ToString()); } } return(Status.NotFound.ToString()); } catch (Exception) { return(Status.Failed.ToString()); } }
public void UpdateStatus(Booking ride, StatusOfRide status) { ride.Status = status; }