Пример #1
0
 public TripEventArgs(CustomerSystem.CustomerGroup group, System.Windows.Vector start, System.Windows.Vector end, CarSystem.Car car)
 {
     Group = group;
     Start = start;
     End   = end;
     Car   = car;
 }
Пример #2
0
        public void OnTripEnd(object source, TripEventArgs e)
        {
            CustomerSystem.CustomerGroup group = e.Group;
            System.Windows.Vector        start = e.Start;
            System.Windows.Vector        end   = e.End;
            CarSystem.Car carObject            = e.Car;
            var           garageLoc            = carObject.Garage.Location;

            DatabaseHelper.QueueDatabaseRequest(
                database => (from garage in database.Garages
                             let loc = garage.Location
                                       where loc.X == garageLoc.X && loc.Y == garageLoc.Y
                                       select garage).ToList(),
                data =>
            {
                if (data.Count == 0)
                {
                    throw new Exception("Cannot find garage in database");
                }
                else
                {
                    var garage = data.First();
                    DatabaseHelper.QueueDatabaseAction((database) =>
                    {
                        if (garage == null)
                        {
                            throw new Exception($"Unknown garage {carObject.Garage}");
                        }

                        var car = new Car
                        {
                            CityInstance      = Instance,
                            Garage            = garage,
                            Model             = carObject.Model.Name,
                            DistanceTravelled = (int)Math.Round(carObject.DistanceTraveled)
                        };

                        var trip = new Trip
                        {
                            Car           = car,
                            Distance      = carObject.DistanceTraveled,
                            StartLocation = DatabaseHelper.CreateDBVector(start),
                            EndLocation   = DatabaseHelper.CreateDBVector(end),
                            Price         = 0.0
                        };

                        database.Trips.Add(trip);
                        database.SaveChanges();
                    });
                }
            },
                MainScreen.CommandLoop
                );
        }
Пример #3
0
        /// <summary>
        /// The customer makes a review depending on how long they had to wait, their moral state and the time of the ride.
        /// </summary>
        public void MakeReview(CarSystem.Car car)
        {
            Review r = new Review(Customer);

            car.Reviews.Add(r);
        }