public decimal BookRide(User user, int rideId, string source, string destination, int seat) { decimal cost = 0; var ride = Dbr.GetRideById(rideId); if (ride != null) { cost = CalculateCharge(ride.ViaMaps, source, destination); var rider = new Rider() { UserId = user.Id, Source = source, Destination = destination, RideCost = cost * seat, Seats = seat, RideId = ride.Id }; //ride.Riders.Add(rider.Id); var payment = new Payment() { CreatorId = ride.CreatorId, RiderId = user.Id, Price = cost * seat, RideId = ride.Id }; try { Dbrr.AddRider(rider); Dbp.AddPayment(payment); Dbr.UpdateRide(ride); return(cost * seat); }catch (Exception) { return(-1); } } return(-1); }