Example #1
0
        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());
            }
        }
Example #2
0
        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;
 }