Пример #1
0
        private static double GetDistance(BikeTbl point1, Coordinate point2)
        {
            //pythagorean theorem c^2 = a^2 + b^2
            //thus c = square root(a^2 + b^2)
            double a = (double)(point2.latitude - point1.latitude);
            double b = (double)(point2.longitude - point1.longitude);

            return(Math.Sqrt(a * a + b * b));
        }
        public void makePayment(int tripId, int cost, int userId)
        {
            UserTbl     user    = DB.UserTbls.Find(userId);
            string      card    = user.cardNum;
            PaymentsTbl payment = new PaymentsTbl();

            payment.cardNum = card;
            payment.cost    = cost;
            payment.tripID  = tripId;
            DB.PaymentsTbls.Add(payment);
            TripTbl trip = DB.TripTbls.Find(tripId);

            trip.status = "finished_paid";
            BikeTbl bike = DB.BikeTbls.Find(trip.Bike);

            bike.status = "locked";
            DB.SaveChanges();
        }
Пример #3
0
        public object FindNearest(Coordinate coordinate)
        {
            List <BikeTbl> bikes = DB.BikeTbls.ToList();

            double  min    = double.PositiveInfinity;
            BikeTbl result = null;

            foreach (BikeTbl bike in bikes)
            {
                double distance = GetDistance(bike, coordinate);
                if (distance < min)
                {
                    min    = distance;
                    result = bike;
                }
            }

            return(result);
        }
        public void startTrip(int userId, int bikeID)
        {
            TripTbl newTrip = new TripTbl();
            UserTbl user    = DB.UserTbls.Find(userId);

            newTrip.startLongitude = user.longitude;
            newTrip.startLatitude  = user.latitude;
            newTrip.status         = "in-progress";
            newTrip.startTime      = DateTime.Now;
            BikeTbl bike = DB.BikeTbls.Find(bikeID);

            if (bike.status.Equals("unlocked"))
            {
                newTrip.BikeTbl = bike;
                newTrip.Bike    = bikeID;
                newTrip.UserID  = userId;
                DB.TripTbls.Add(newTrip);
                bike.status = "occupied";
                DB.SaveChanges();
            }
        }
        public TripCost endTrip(int TripID)
        {
            TripTbl trip = DB.TripTbls.Find(TripID);

            trip.status  = "finished_not_paid";
            trip.endTime = DateTime.Now;
            BikeTbl bike = DB.BikeTbls.Find(trip.Bike);

            trip.endLongitude = bike.longitude;
            trip.endLatitude  = bike.latitude;
            TimeSpan span      = (TimeSpan)(trip.endTime - trip.startTime);
            double   minutes   = span.TotalMinutes;
            int      finalCost = (int)(minutes * 0.5);

            trip.cost = finalCost;
            TripCost tripcost = new TripCost();

            tripcost.cost   = finalCost;
            tripcost.TripID = TripID;
            DB.SaveChanges();
            return(tripcost);
        }