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);
        }