Example #1
0
        /// <summary>
        /// Converts database information into a Car model object.
        /// </summary>
        /// <param name="modelId"> The model id of the CarModel, that should be recreated.</param>
        /// <returns>A car model that should be recreated by id.</returns>
        public static CarModel RecreateModelById(int modelId)
        {
            // A car model that will become the recreated from the database CarModel object.
            CarModel model = new CarModel();

            // Open connection to database
            MySqlConnection con = ApplicationSettings.GetConnection();

            con.Open();

            // Get model information from DB
            MySqlCommand cmd = new MySqlCommand(
                "SELECT * FROM `car_model` WHERE `model_id` = @model", con);

            cmd.Parameters.AddWithValue("@model", modelId);
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                for (int i = 1; i < 10; i++)
                {
                    // Extras
                    if (i == 8)
                    {
                        string   s      = reader[i].ToString();
                        string[] extras = s.Split(null);
                        foreach (string e in extras)
                        {
                            model.AddPart(ApplicationSettings.GetPartById(Convert.ToInt32(e)));
                        }
                    }
                    // Name
                    else if (i == 9)
                    {
                        if (reader[10] != DBNull.Value)
                        {
                            model.SetName(reader[10].ToString());
                        }
                    }
                    else
                    {
                        int id = Convert.ToInt32(reader[i]);

                        // Insert the found by id part into the model
                        model.AddPart(ApplicationSettings.GetPartById(id));
                    }
                }
            }
            reader.Close();

            // Close conenction
            con.Close();

            return(model);
        }
Example #2
0
        /// <summary>
        /// Generates a random car model from a predefined list.
        /// </summary>
        /// <returns>A <see cref="CarModel"/> object.</returns>
        private CarModel GetRandomCarModel()
        {
            List <CarModel> randomModels = new List <CarModel>();

            // 1
            CarModel m = new CarModel();
            Tires    t = new Tires(Inches.Sixteen);

            m.AddPart(new Cabrio());
            m.AddPart(new AirSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Average));
            m.AddPart(new ManualTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new AudioSystem());
            m.AddPart(new GPS());
            randomModels.Add(m);

            // 2
            m = new CarModel();
            t = new Tires(Inches.Eighteen);
            m.AddPart(new Jeep());
            m.Chassis.SetChassisColor(ChassisColors.Red);
            m.AddPart(new HydraulicSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.MegaPower));
            m.AddPart(new ManualTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new _4x4());
            m.AddPart(new GPS());
            randomModels.Add(m);

            // 3
            m = new CarModel();
            t = new Tires(Inches.Sixteen);
            m.AddPart(new SportCar());
            m.Chassis.SetChassisColor(ChassisColors.Blue);
            m.AddPart(new AirSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.MegaPower));
            m.AddPart(new ManualTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new _4x4());
            m.AddPart(new AudioSystem());
            m.AddPart(new GPS());
            randomModels.Add(m);

            // 4
            m = new CarModel();
            t = new Tires(Inches.Fourteen);
            m.AddPart(new Sedan());
            m.Chassis.SetChassisColor(ChassisColors.Grey);
            m.AddPart(new HydraulicSuspension());
            m.AddPart(new PetrolEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Small));
            m.AddPart(new AutomaticTransmission());
            m.AddPart(new TextileInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            randomModels.Add(m);

            // 5
            m = new CarModel();
            t = new Tires(Inches.Sixteen);
            m.AddPart(new Sedan());
            m.Chassis.SetChassisColor(ChassisColors.Red);
            m.AddPart(new AirSuspension());
            m.AddPart(new ElectricEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Average));
            m.AddPart(new AutomaticTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new _4x4());
            m.AddPart(new AudioSystem());
            m.AddPart(new GPS());
            m.AddPart(new Parktronic());
            m.AddPart(new AC());
            m.AddPart(new ButtonStarter());
            randomModels.Add(m);

            // 6
            m = new CarModel();
            t = new Tires(Inches.Fourteen);
            m.AddPart(new SportCar());
            m.Chassis.SetChassisColor(ChassisColors.Blue);
            m.AddPart(new HydraulicSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.MegaPower));
            m.AddPart(new ManualTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new _4x4());
            m.AddPart(new AudioSystem());
            m.AddPart(new GPS());
            m.AddPart(new AC());
            randomModels.Add(m);

            // 7
            m = new CarModel();
            t = new Tires(Inches.Eighteen);
            m.AddPart(new Jeep());
            m.Chassis.SetChassisColor(ChassisColors.Grey);
            m.AddPart(new GasSuspension());
            m.AddPart(new PetrolEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Average));
            m.AddPart(new ManualTransmission());
            m.AddPart(new TextileInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            m.AddPart(new _4x4());
            m.AddPart(new GPS());
            m.AddPart(new CruiseControl());
            randomModels.Add(m);

            // 8
            m = new CarModel();
            t = new Tires(Inches.Fourteen);
            m.AddPart(new Cabrio());
            m.Chassis.SetChassisColor(ChassisColors.Grey);
            m.AddPart(new HydraulicSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Small));
            m.AddPart(new ManualTransmission());
            m.AddPart(new TextileInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            randomModels.Add(m);

            // 9
            m = new CarModel();
            t = new Tires(Inches.Fourteen);
            m.AddPart(new Minivan());
            m.Chassis.SetChassisColor(ChassisColors.Grey);
            m.AddPart(new HydraulicSuspension());
            m.AddPart(new PetrolEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Small));
            m.AddPart(new AutomaticTransmission());
            m.AddPart(new TextileInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            randomModels.Add(m);

            // 9
            m = new CarModel();
            t = new Tires(Inches.Sixteen);
            m.AddPart(new Minivan());
            m.Chassis.SetChassisColor(ChassisColors.Blue);
            m.AddPart(new GasSuspension());
            m.AddPart(new DieselEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Average));
            m.AddPart(new ManualTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            randomModels.Add(m);

            // 10
            m = new CarModel();
            t = new Tires(Inches.Fourteen);
            m.AddPart(new Minivan());
            m.Chassis.SetChassisColor(ChassisColors.Blue);
            m.AddPart(new AirSuspension());
            m.AddPart(new ElectricEngine());
            m.AddPart(new Accumulator(AccumulatorSize.Average));
            m.AddPart(new AutomaticTransmission());
            m.AddPart(new LeatherInterior());
            m.AddPart(t);
            m.AddPart(new Rims(t));
            randomModels.Add(m);

            // Retrieve a model from the list based on a random integer.
            int position = rand.Next(randomModels.Count - 1);

            return(randomModels.ElementAt(position));
        }
        /// <summary>
        /// Synchronizes the already processed orders list with the information in the database.
        /// </summary>
        private void SyncProcessedOrders()
        {
            this.ProcessedOrders = new List <Order>();

            // Open connection to database
            using (MySqlConnection con = ApplicationSettings.GetConnection())
            {
                con.Open();

                // Get all orders, customers and models from DB
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM `processed_order` AS O JOIN `car_model` " +
                                                    "AS M on (O.model_id=M.model_id) JOIN `customer` AS C on (O.customer_id = C.customer_id)", con);
                MySqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    int        order_id       = Convert.ToInt32(reader[0]);
                    int        model_id       = Convert.ToInt32(reader[1]);
                    int        customer_id    = Convert.ToInt32(reader[2]);
                    DateTime   issued_date    = Convert.ToDateTime(reader[3]);
                    DateTime   processed_date = Convert.ToDateTime(reader[5]);
                    DateTime   expected_date  = Convert.ToDateTime(reader[4]);
                    int        priority       = Convert.ToInt32(reader[6]);
                    List <int> partIds        = new List <int>();
                    partIds.Add(Convert.ToInt32(reader[8]));
                    partIds.Add(Convert.ToInt32(reader[9]));
                    partIds.Add(Convert.ToInt32(reader[10]));
                    partIds.Add(Convert.ToInt32(reader[11]));
                    partIds.Add(Convert.ToInt32(reader[12]));
                    partIds.Add(Convert.ToInt32(reader[13]));
                    partIds.Add(Convert.ToInt32(reader[14]));
                    partIds.Add(Convert.ToInt32(reader[15]));
                    string extras = reader[16].ToString();
                    // TODO name reader[17]
                    string fname = reader[19].ToString();
                    string lname = reader[20].ToString();
                    string email = reader[21].ToString();
                    string phone = reader[22].ToString();

                    foreach (string extra in extras.Split(null))
                    {
                        if (!(extra == ""))
                        {
                            partIds.Add(Convert.ToInt32(extra));
                        }
                    }

                    // Create model
                    CarModel model = new CarModel();
                    foreach (int id in partIds)
                    {
                        model.AddPart(ApplicationSettings.GetPartById(id));
                    }

                    model.ID = model_id;

                    // Create customer
                    Customer cust = new Customer(fname, lname, email, phone);
                    cust.ID = customer_id;

                    // Create order
                    Order o = new Order(cust, model, RecreateOrderPriorityFromDB(priority));
                    o.ID = order_id;
                    o.SetExpectedDate(expected_date);
                    o.SetTimeOfCreation(issued_date);
                    o.ProcessOrder(processed_date);

                    this.ProcessedOrders.Add(o);
                }

                // Close connection
                con.Close();
            }
        }