コード例 #1
0
        public void Insert_CarDetails(CarDetailsObj obj, long makerId, long modelId, long typeId)
        {
            try
            {
                string query = string.Format("INSERT INTO {0} " +
                                             "(maker_id, model_id, modeltype_id, maker, model, type, series, modeltypename, internal_class_name, model_start, model_end, " +
                                             "series_start, series_end, hsn, tsn, tsn2, car_tax, co2_class, base_price, engine_type, fuel, fuel2, " +
                                             "emission_control, engine_design, cylinder, fuel_type, charge, valves, cubic, power_kw, power_ps, " +
                                             "max_power, turning_moment, max_turning_moment, type_of_drive, gearing, gears, start_stop_automatic, " +
                                             "emission_class, length, width, height, chassis, doors, car_class, seats, speed_up, max_speed, tank, tank2) " +
                                             "VALUES" +
                                             "(@maker_id, @model_id, @modeltype_id, @maker, @model, @type, @series, @modeltypename, @internal_class_name, STR_TO_DATE(@model_start, '%d/%m/%Y'), STR_TO_DATE(@model_end, '%d/%m/%Y'), " +
                                             "STR_TO_DATE(@series_start, '%d/%m/%Y'), STR_TO_DATE(@series_end, '%d/%m/%Y'), @hsn, @tsn, @tsn2, @car_tax, @co2_class, @base_price, @engine_type, @fuel, @fuel2, " +
                                             "@emission_control, @engine_design, @cylinder, @fuel_type, @charge, @valves, @cubic, @power_kw, @power_ps, " +
                                             "@max_power, @turning_moment, @max_turning_moment, @type_of_drive, @gearing, @gears, @start_stop_automatic, " +
                                             "@emission_class, @length, @width, @height, @chassis, @doors, @car_class, @seats, @speed_up, @max_speed, @tank, @tank2)",
                                             MySQLExporter.DETAILS_TABLE);


                //open connection
                if (_mySqlExporter.connection.State == ConnectionState.Open || _mySqlExporter.OpenConnection() == true)
                {
                    //create command and assign the query and connection from the constructor
                    MySqlCommand cmd = new MySqlCommand(query, _mySqlExporter.connection);

                    //cmd.CommandText = query;

                    SetSQLParameters(obj, cmd, makerId, modelId, typeId);

                    //Execute command
                    cmd.ExecuteNonQuery();

                    //close connection
                    _mySqlExporter.CloseConnection();
                }
            }
            catch (Exception ex)
            {
                if (Core != null && Core.Log != null)
                {
                    Core.Log.Error(string.Format("SQLCarDetails::Insert_CarDetails : {0}", ex.Message));
                }
                else
                {
                    throw new Exception("SQLCarDetails::Insert_CarDetails", ex);
                }
            }
        }
コード例 #2
0
        private void GetCarDetails()
        {
            foreach (ModelTypeObj type in modelTypesList)
            {
                string modelDetailsUrl = string.Format("{0}{1}", baseUrl, type.ModelTypeDetailsUrl);
                try
                {
                    string carContent = GetContent(modelDetailsUrl);

                    var htmlDoc = new HtmlDocument();
                    htmlDoc.LoadHtml(carContent);

                    HtmlNodeCollection cars_div = null;
                    if (htmlDoc.DocumentNode != null)
                    {
                        cars_div = htmlDoc.DocumentNode.SelectNodes(
                            "//*[@id=\"ctl00_ctl00_cphContentRow_cphContent_wucNFBAutokatalogDetail1_ctl01_updatePanelDetail\"]/div[2]/div[3]/div[1]/table/tbody");
                    }

                    if (cars_div != null)
                    {
                        CarDetailsObj carObj = new CarDetailsObj();

                        carObj.ModelTypeID       = type.ModelTypeID;
                        carObj.ModelID           = type.ModelID;
                        carObj.Maker             = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[1].ChildNodes[1].InnerText);
                        carObj.Model             = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[2].ChildNodes[1].InnerText);
                        carObj.Type              = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[3].ChildNodes[1].InnerText);
                        carObj.Series            = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[4].ChildNodes[1].InnerText);
                        carObj.ModelTypeName     = type.ModelTypeName;
                        carObj.InternalClassName =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[5].ChildNodes[1].InnerText);
                        carObj.ModelStart =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[6].ChildNodes[1].InnerText);
                        carObj.ModelEnd =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[7].ChildNodes[1].InnerText);
                        carObj.SeriesStart =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[8].ChildNodes[1].InnerText);
                        carObj.SeriesEnd =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[9].ChildNodes[1].InnerText);
                        carObj.HSN      = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[10].ChildNodes[1].InnerText);
                        carObj.TSN      = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[11].ChildNodes[1].InnerText);
                        carObj.TSN2     = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[12].ChildNodes[1].InnerText);
                        carObj.CarTax   = HttpUtility.HtmlDecode(cars_div.First().ChildNodes[13].ChildNodes[1].InnerText);
                        carObj.CO2Class =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[14].ChildNodes[1].InnerText);
                        carObj.BasePrice =
                            HttpUtility.HtmlDecode(cars_div.First().ChildNodes[15].ChildNodes[1].InnerText);



                        // Motor & Antrieb
                        HtmlNodeCollection carEngine_div = null;
                        carEngine_div = htmlDoc.DocumentNode.SelectNodes(
                            "//*[@id=\"ctl00_ctl00_cphContentRow_cphContent_wucNFBAutokatalogDetail1_ctl01_updatePanelDetail\"]/div[2]/div[3]/div[2]/table/tbody");

                        if (carEngine_div != null)
                        {
                            carObj.EngineType =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[0].ChildNodes[1].InnerText);
                            carObj.Fuel =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[1].ChildNodes[1].InnerText);
                            carObj.Fuel2 =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[2].ChildNodes[1].InnerText);
                            carObj.EmissionControl =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[3].ChildNodes[1].InnerText);
                            carObj.EngineDesign =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[4].ChildNodes[1].InnerText);
                            carObj.Cylinder = carEngine_div.First().ChildNodes[5].ChildNodes[1].InnerText.ToInt32OrDefault(0);
                            //Convert.ToInt32();
                            carObj.FuelType =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[6].ChildNodes[1].InnerText);
                            carObj.Charge =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[7].ChildNodes[1].InnerText);
                            carObj.Valves = carEngine_div.First().ChildNodes[8].ChildNodes[1].InnerText.ToInt32OrDefault(0);
                            carObj.Cubic  =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[9].ChildNodes[1].InnerText);
                            carObj.PowerKW = carEngine_div.First().ChildNodes[10].ChildNodes[1].InnerText.ToInt32OrDefault(0);
                            carObj.PowerPS = carEngine_div.First().ChildNodes[11].ChildNodes[1].InnerText
                                             .ToInt32OrDefault(0);
                            carObj.MaxPower =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[12].ChildNodes[1].InnerText);
                            carObj.TurningMoment =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[13].ChildNodes[1].InnerText);
                            carObj.MaxTurningMoment =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[14].ChildNodes[1].InnerText);
                            carObj.TypeOfDrive =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[15].ChildNodes[1].InnerText);
                            carObj.Gearing =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[16].ChildNodes[1].InnerText);
                            carObj.Gears = carEngine_div.First().ChildNodes[17].ChildNodes[1].InnerText
                                           .ToInt32OrDefault(0);
                            carObj.StartStopAutomatic =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[18].ChildNodes[1].InnerText);
                            carObj.EmissionClass =
                                HttpUtility.HtmlDecode(carEngine_div.First().ChildNodes[20].ChildNodes[1].InnerText);
                        }


                        // Maße & Gewicht
                        HtmlNodeCollection carDimensions_div = null;
                        carDimensions_div = htmlDoc.DocumentNode.SelectNodes(
                            "//*[@id=\"ctl00_ctl00_cphContentRow_cphContent_wucNFBAutokatalogDetail1_ctl01_updatePanelDetail\"]/div[2]/div[3]/div[3]/table/tbody");

                        if (carDimensions_div != null)
                        {
                            carObj.Length =
                                HttpUtility.HtmlDecode(carDimensions_div.First().ChildNodes[0].ChildNodes[1].InnerText);
                            carObj.Width =
                                HttpUtility.HtmlDecode(carDimensions_div.First().ChildNodes[1].ChildNodes[1].InnerText);
                            carObj.Height =
                                HttpUtility.HtmlDecode(carDimensions_div.First().ChildNodes[2].ChildNodes[1].InnerText);
                        }

                        // Karosserie & Fahrwerk
                        HtmlNodeCollection carChassis_div = null;
                        carChassis_div = htmlDoc.DocumentNode.SelectNodes(
                            "//*[@id=\"ctl00_ctl00_cphContentRow_cphContent_wucNFBAutokatalogDetail1_ctl01_updatePanelDetail\"]/div[2]/div[3]/div[4]/table/tbody");

                        if (carChassis_div != null)
                        {
                            carObj.Chassis =
                                HttpUtility.HtmlDecode(carChassis_div.First().ChildNodes[0].ChildNodes[1].InnerText);
                            carObj.Doors    = carChassis_div.First().ChildNodes[1].ChildNodes[1].InnerText.ToInt32OrDefault(0);
                            carObj.CarClass =
                                HttpUtility.HtmlDecode(carChassis_div.First().ChildNodes[3].ChildNodes[1].InnerText);
                            carObj.Seats = carChassis_div.First().ChildNodes[4].ChildNodes[1].InnerText.ToInt32OrDefault(0);
                        }

                        //Messwerte Hersteller
                        HtmlNodeCollection carMeasured_div = null;
                        carMeasured_div = htmlDoc.DocumentNode.SelectNodes(
                            "//*[@id=\"ctl00_ctl00_cphContentRow_cphContent_wucNFBAutokatalogDetail1_ctl01_updatePanelDetail\"]/div[2]/div[3]/div[5]/table/tbody");

                        if (carMeasured_div != null)
                        {
                            carObj.SpeedUp =
                                HttpUtility.HtmlDecode(carMeasured_div.First().ChildNodes[0].ChildNodes[1].InnerText);
                            carObj.MaxSpeed =
                                HttpUtility.HtmlDecode(carMeasured_div.First().ChildNodes[1].ChildNodes[1].InnerText);
                            carObj.Tank =
                                HttpUtility.HtmlDecode(carMeasured_div.First().ChildNodes[26].ChildNodes[1].InnerText);
                            carObj.Tank2 =
                                HttpUtility.HtmlDecode(carMeasured_div.First().ChildNodes[27].ChildNodes[1].InnerText);
                        }

                        carDetailsList.Add(carObj);
                    }
                }
                catch (Exception ex)
                {
                    if (Core != null && Core.Log != null)
                    {
                        Core.Log.Error(string.Format("ADACImporter::GetCarDetails : {0} ({1})", ex.Message, modelDetailsUrl));
                    }
                    else
                    {
                        throw new Exception("ADACImporter::GetCarDetails", ex);
                    }
                }
            }
            if (Core != null && Core.Log != null)
            {
                Core.Log.Info(string.Format("{0} Car Detail Records imported.", carDetailsList.Count));
            }
        }
コード例 #3
0
        private static void SetSQLParameters(CarDetailsObj obj, MySqlCommand cmd, long makerId, long modelId,
                                             long typeId)
        {
            cmd.Parameters.AddWithValue("@maker_id", makerId);
            cmd.Parameters.AddWithValue("@model_id", modelId);
            cmd.Parameters.AddWithValue("@modeltype_id", typeId);
            cmd.Parameters.AddWithValue("@maker", obj.Maker);
            cmd.Parameters.AddWithValue("@model", obj.Model);
            cmd.Parameters.AddWithValue("@type", obj.Type);
            cmd.Parameters.AddWithValue("@series", obj.Series);
            cmd.Parameters.AddWithValue("@modeltypename", obj.ModelTypeName);
            cmd.Parameters.AddWithValue("@internal_class_name", obj.InternalClassName);

            //dateTime ?
            cmd.Parameters.AddWithValue("@model_start", obj.ModelStart.Length <= 7 ? string.Format("01/{0}", obj.ModelStart) : obj.ModelStart);

            if (string.IsNullOrWhiteSpace(obj.ModelEnd))
            {
                cmd.Parameters.AddWithValue("@model_end", obj.ModelEnd);
            }
            else
            {
                string[] parts   = obj.ModelEnd.Split('/');
                string   lastday = DateTime.DaysInMonth(Convert.ToInt32(parts[1]), Convert.ToInt32(parts[0])).ToString();
                cmd.Parameters.AddWithValue("@model_end",
                                            obj.ModelEnd.Length <= 7 ? string.Format("{0}/{1}", lastday, obj.ModelEnd) : obj.ModelEnd);
            }

            cmd.Parameters.AddWithValue("@series_start", obj.SeriesStart.Length <= 7 ? string.Format("01/{0}", obj.SeriesStart) : obj.SeriesStart);

            if (string.IsNullOrWhiteSpace(obj.SeriesEnd))
            {
                cmd.Parameters.AddWithValue("@series_end", obj.SeriesEnd);
            }
            else
            {
                string[] parts   = obj.SeriesEnd.Split('/');
                string   lastday = DateTime.DaysInMonth(Convert.ToInt32(parts[1]), Convert.ToInt32(parts[0])).ToString();
                cmd.Parameters.AddWithValue("@series_end",
                                            obj.SeriesEnd.Length <= 7 ? string.Format("{0}/{1}", lastday, obj.SeriesEnd) : obj.SeriesEnd);
            }

            cmd.Parameters.AddWithValue("@hsn", obj.HSN);
            cmd.Parameters.AddWithValue("@tsn", obj.TSN);
            cmd.Parameters.AddWithValue("@tsn2", obj.TSN2);
            cmd.Parameters.AddWithValue("@car_tax", obj.CarTax);
            cmd.Parameters.AddWithValue("@co2_class", obj.CO2Class);
            cmd.Parameters.AddWithValue("@base_price", obj.BasePrice);
            cmd.Parameters.AddWithValue("@engine_type", obj.EngineType);
            cmd.Parameters.AddWithValue("@fuel", obj.Fuel);
            cmd.Parameters.AddWithValue("@fuel2", obj.Fuel2);
            cmd.Parameters.AddWithValue("@emission_control", obj.EmissionControl);
            cmd.Parameters.AddWithValue("@engine_design", obj.EngineDesign);
            cmd.Parameters.AddWithValue("@cylinder", obj.Cylinder);

            cmd.Parameters.AddWithValue("@fuel_type", obj.FuelType);
            cmd.Parameters.AddWithValue("@charge", obj.Charge);
            cmd.Parameters.AddWithValue("@valves", obj.Valves);
            cmd.Parameters.AddWithValue("@cubic", obj.Cubic);
            cmd.Parameters.AddWithValue("@power_kw", obj.PowerKW);
            cmd.Parameters.AddWithValue("@power_ps", obj.PowerPS);
            cmd.Parameters.AddWithValue("@max_power", obj.MaxPower);
            cmd.Parameters.AddWithValue("@turning_moment", obj.TurningMoment);
            cmd.Parameters.AddWithValue("@max_turning_moment", obj.MaxTurningMoment);
            cmd.Parameters.AddWithValue("@type_of_drive", obj.TypeOfDrive);

            cmd.Parameters.AddWithValue("@gearing", obj.Gearing);
            cmd.Parameters.AddWithValue("@gears", obj.Gears);
            cmd.Parameters.AddWithValue("@start_stop_automatic", obj.StartStopAutomatic);
            cmd.Parameters.AddWithValue("@emission_class", obj.EmissionClass);
            cmd.Parameters.AddWithValue("@length", obj.Length);
            cmd.Parameters.AddWithValue("@width", obj.Width);
            cmd.Parameters.AddWithValue("@height", obj.Height);
            cmd.Parameters.AddWithValue("@chassis", obj.Chassis);
            cmd.Parameters.AddWithValue("@doors", obj.Doors);
            cmd.Parameters.AddWithValue("@car_class", obj.CarClass);
            cmd.Parameters.AddWithValue("@seats", obj.Seats);
            cmd.Parameters.AddWithValue("@speed_up", obj.SpeedUp);
            cmd.Parameters.AddWithValue("@max_speed", obj.MaxSpeed);
            cmd.Parameters.AddWithValue("@tank", obj.Tank);
            cmd.Parameters.AddWithValue("@tank2", obj.Tank2);
        }
コード例 #4
0
        public void Update_CarDetails(CarDetailsObj obj, long makerId, long modelId, long typeId, long id)
        {
            try
            {
                string query = string.Format("UPDATE {0} SET " +
                                             "maker_id=@maker_id, " +
                                             "model_id=@model_id, " +
                                             "modeltype_id=@modeltype_id, " +
                                             "maker=@maker, " +
                                             "model=@model, " +
                                             "type=@type, " +
                                             "series=@series, " +
                                             "modeltypename=@modeltypename, " +
                                             "internal_class_name=@internal_class_name, " +
                                             "model_start=STR_TO_DATE(@model_start, '%d/%m/%Y'), " +
                                             "model_end=STR_TO_DATE( @model_end, '%d/%m/%Y'), " +
                                             "series_start=STR_TO_DATE(@series_start, '%d/%m/%Y') , " +
                                             "series_end=STR_TO_DATE(@series_end, '%d/%m/%Y') , " +
                                             "hsn=@hsn, " +
                                             "tsn=@tsn, " +
                                             "tsn2=@tsn2, " +
                                             "car_tax=@car_tax, " +
                                             "co2_class=@co2_class, " +
                                             "base_price=@base_price, " +
                                             "engine_type=@engine_type, " +
                                             "fuel=@fuel, " +
                                             "fuel2=@fuel2, " +
                                             "emission_control=@emission_control, " +
                                             "engine_design=@engine_design, " +
                                             "cylinder=@cylinder, " +
                                             "fuel_type=@fuel_type, " +
                                             "charge=@charge, " +
                                             "valves=@valves, " +
                                             "cubic=@cubic, " +
                                             "power_kw=@power_kw, " +
                                             "power_ps=@power_ps, " +
                                             "max_power=@max_power, " +
                                             "turning_moment=@turning_moment, " +
                                             "max_turning_moment=@max_turning_moment, " +
                                             "type_of_drive=@type_of_drive, " +
                                             "gearing=@gearing, " +
                                             "gears=@gears, " +
                                             "start_stop_automatic=@start_stop_automatic, " +
                                             "emission_class=@emission_class, " +
                                             "length=@length, " +
                                             "width=@width, " +
                                             "height=@height, " +
                                             "chassis=@chassis, " +
                                             "doors=@doors, " +
                                             "car_class=@car_class, " +
                                             "seats=@seats, " +
                                             "speed_up=@speed_up, " +
                                             "max_speed=@max_speed, " +
                                             "tank=@tank, " +
                                             "tank2=@tank2" +
                                             " WHERE id={1}", MySQLExporter.DETAILS_TABLE,
                                             id);



                //Open connection
                if (_mySqlExporter.connection.State == ConnectionState.Open || _mySqlExporter.OpenConnection() == true)
                {
                    //create mysql command
                    MySqlCommand cmd = new MySqlCommand
                    {
                        CommandText = query,
                        Connection  = _mySqlExporter.connection
                    };
                    //Assign the query using CommandText
                    //Assign the connection using Connection

                    SetSQLParameters(obj, cmd, makerId, modelId, typeId);


                    //Execute query
                    cmd.ExecuteNonQuery();

                    //close connection
                    _mySqlExporter.CloseConnection();
                }
            }catch (Exception ex)
            {
                if (Core != null && Core.Log != null)
                {
                    Core.Log.Error(string.Format("SQLCarDetails::Update_CarDetails : {0}", ex.Message));
                }
                else
                {
                    throw new Exception("SQLCarDetails::Update_CarDetails", ex);
                }
            }
        }