private void Populate(IDataRecord record)
        {
            try
            {
                _derivativeId   = (int)record["CARDerId"];
                this.Derivative = CarDerivative.FromId(_derivativeId);
                _yearPlateId    = (int)record["YearPlateId"];
                if (_yearPlateId == 999)
                {
                    this.YearPlate = null;
                }
                else
                {
                    IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

                    this.YearPlate = yearPlateProvider.FromId(_yearPlateId);
                }
                this.Price = (int)record["Price"];
            }
            catch (IndexOutOfRangeException e)
            {
                throw new ArgumentException("A required column was not found", "record", e);
            }
            catch (InvalidCastException e)
            {
                throw new ArgumentException("A column value was invalid", "record", e);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Gets the plates by model id.
        /// </summary>
        /// <param name="modelId">The model id.</param>
        /// <param name="section">The section.</param>
        /// <returns> List of year plates </returns>
        public List <IYearPlate> GetPlatesByModelId(int modelId, VanValuationSection section)
        {
            int                sectionFrom       = GetYearPlateFromForSection(section);
            int                sectionTo         = GetYearPlateToForSection(section);
            IVanProvider       vanProvider       = ObjectFactory.GetInstance <IVanProvider>();
            IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

            IVanModel m = vanProvider.GetModelFromId(modelId);

            if (m.FromYearPlate == null || m.ToYearPlate == null)
            {
                return(null);
            }

            int plateFrom = m.FromYearPlate.Id;
            int plateTo   = m.ToYearPlate.Id;

            if (sectionFrom > plateFrom)
            {
                plateFrom = sectionFrom;
            }
            if (sectionTo < plateTo)
            {
                plateTo = sectionTo;
            }

            return(yearPlateProvider.GetRange(plateFrom, plateTo));
        }
Beispiel #3
0
        /// <summary>
        /// Populates the mileage adjusted valuation.
        /// </summary>
        /// <param name="derivId">The deriv identifier.</param>
        /// <param name="plateId">The plate identifier.</param>
        /// <param name="section">The section.</param>
        /// <param name="valuation">The valuation.</param>
        private static void PopulateVanValuation(int derivId, int plateId, VanValuationSection section, VanValuation valuation)
        {
            if (plateId >= GetYearPlateFromForSection(section) && plateId <= GetYearPlateToForSection(section))
            {
                valuation.Result = ValuationResultType.Error;
                IVanProvider       vanProvider       = ObjectFactory.GetInstance <IVanProvider>();
                IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

                valuation.Derivative = vanProvider.GetDerivativeFromId(derivId);
                valuation.YearPlate  = yearPlateProvider.FromId(plateId);

                valuation.ValuationSegments = new Dictionary <int, IVanValuationSegment>();

                valuation.OriginalPrice = GetOriginalPrice(derivId, plateId);

                Sproc sp = new Sproc("Used_Select_Valuation", Database);
                sp.Parameters.Add("@VANDerId", SqlDbType.Int).Value    = derivId;
                sp.Parameters.Add("@YearPlateId", SqlDbType.Int).Value = plateId;

                using (SqlDataReader dataReader = sp.ExecuteReader())
                {
                    if (dataReader != null)
                    {
                        while (dataReader.Read())
                        {
                            PopulateValuationSegmentFromDataReader(dataReader, valuation);
                        }

                        valuation.Result = ValuationResultType.VanEstimatedMileage;
                    }
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Creates a car derivative from a data reader
        /// </summary>
        /// <param name="dataReader">The data reader</param>
        /// <returns>CarDerivative representation of the data</returns>
        private CarDerivative GetDerivativeFromDataReader(SqlDataReader dataReader)
        {
            CarDerivative deriv = new CarDerivative();

            deriv.Id       = (int)dataReader["CARDerId"];
            deriv._imageId = DataUtil.GetInt32(dataReader, "CapImageId");
            deriv._modelId = (int)dataReader["CARModId"];

            deriv.HasMPG        = DataUtil.GetNullableInt(dataReader, "MPG").HasValue;
            deriv.HasSeats      = DataUtil.GetNullableInt(dataReader, "Seats").HasValue;
            deriv.HasEngineSize = DataUtil.GetNullableInt(dataReader, "CC").HasValue;

            deriv.Name   = (string)dataReader["Derivative"];
            deriv.Trim   = DataUtil.GetString(dataReader, "TrimName", String.Empty).Trim();
            deriv.Engine = DataUtil.GetString(dataReader, "NameEngine", String.Empty).Trim();

            deriv.FuelType = (string)dataReader["FuelType"];

            deriv.HasTechData   = DataUtil.GetBoolean(dataReader, "Tech");
            deriv.HasOptionData = DataUtil.GetBoolean(dataReader, "Option");

            deriv.OriginalBodystyle = DataUtil.GetString(dataReader, "BodyOriginal");

            deriv.P11DPrice      = DataUtil.GetInt32(dataReader, "P11DPrice");
            deriv.ListPrice      = DataUtil.GetInt32(dataReader, "ListPrice");
            deriv.TargetPrice    = DataUtil.GetInt32(dataReader, "TargetPrice");
            deriv.ThreeYearValue = DataUtil.GetInt32(dataReader, "FRV36");
            deriv.InsuranceGroup = DataUtil.GetInt32(dataReader, "IG");

            deriv.Doors          = DataUtil.GetInt32(dataReader, "Doors");
            deriv.Seats          = DataUtil.GetInt32(dataReader, "Seats");
            deriv.CC             = DataUtil.GetInt32(dataReader, "CC");
            deriv.Cylinders      = DataUtil.GetInt32(dataReader, "Cylinders");
            deriv.Bhp            = DataUtil.GetInt32(dataReader, "BHP");
            deriv.TopSpeed       = DataUtil.GetInt32(dataReader, "TopSpeed");
            deriv.ZeroToSixty    = DataUtil.GetDecimal(dataReader, "ZeroToSixty");
            deriv.MilesPerGallon = DataUtil.GetInt32(dataReader, "MPG");
            deriv.EuroEmissions  = DataUtil.GetInt32(dataReader, "EuroEmissions");

            deriv.Length = DataUtil.GetInt32(dataReader, "Length");
            deriv.Width  = DataUtil.GetInt32(dataReader, "Width");
            deriv.Height = DataUtil.GetInt32(dataReader, "Height");
            deriv.Weight = DataUtil.GetInt32(dataReader, "Weight");

            deriv.FuelDelivery = DataUtil.GetString(dataReader, "FuelDelivery", "-");
            deriv.Transmission = DataUtil.GetString(dataReader, "Transmission", "-");
            deriv.Gears        = DataUtil.GetString(dataReader, "Gears", "-");

            deriv.Valves          = DataUtil.GetInt32(dataReader, "Valves");
            deriv.TorqueLbFt      = DataUtil.GetInt32(dataReader, "TorqueLbFt");
            deriv.TorqueNm        = DataUtil.GetInt32(dataReader, "TorqueNm");
            deriv.Wheelbase       = DataUtil.GetInt32(dataReader, "Wheelbase");
            deriv.LuggageCapacity = DataUtil.GetInt32(dataReader, "LuggageCapacity");
            deriv.FuelCapacity    = DataUtil.GetInt32(dataReader, "FuelCapacity");

            deriv.TurningCircle  = DataUtil.GetInt32(dataReader, "TurningCircle");
            deriv.UnbrakedTowing = DataUtil.GetInt32(dataReader, "UnbrakedTowing");
            deriv.BrakedTowing   = DataUtil.GetInt32(dataReader, "BrakedTowing");

            deriv.CO2Emissions = DataUtil.GetInt32(dataReader, "CO2");
            deriv.VedBand      = DataUtil.GetString(dataReader, "VEDBand", "-");
            deriv.VedFull      = DataUtil.GetDecimal(dataReader, "VEDFull");

            deriv.Introduced   = DataUtil.GetDateTime(dataReader, "Introduced", DateTime.MaxValue);
            deriv.Discontinued = DataUtil.GetDateTime(dataReader, "Discontinued", DateTime.MaxValue);

            IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

            deriv.FromYearPlate = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "FromYearPlateId"));
            deriv.ToYearPlate   = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "ToYearPlateId"));

            deriv.CapCode = DataUtil.GetString(dataReader, "CAPCode");

            deriv.ThisYearBasicRate       = DataUtil.GetInt32(dataReader, "CompanyCarTaxThisYearBasicRate");
            deriv.ThisYearHigherRate      = DataUtil.GetInt32(dataReader, "CompanyCarTaxThisYearHigherRate");
            deriv.NextYearBasicRate       = DataUtil.GetInt32(dataReader, "CompanyCarTaxNextYearBasicRate");
            deriv.NextYearHigherRate      = DataUtil.GetInt32(dataReader, "CompanyCarTaxNextYearHigherRate");
            deriv.CompanyCarTaxPercentage = DataUtil.GetInt32(dataReader, "CompanyCarTaxPercentage");

            return(deriv);
        }
        /// <summary>
        /// Builds a van derivative representation from the data
        /// </summary>
        /// <param name="dataReader">The data reader</param>
        /// <returns>The van derivative</returns>
        private VanDerivative GetDerivativeFromDataReader(SqlDataReader dataReader)
        {
            VanDerivative deriv = new VanDerivative();

            deriv.Id       = (int)dataReader["VANDerId"];
            deriv.Name     = (string)dataReader["Derivative"];
            deriv._modelId = (int)dataReader["VANModId"];
            deriv.FuelType = (string)dataReader["FuelType"];

            deriv.HasCO2Emissions = DataUtil.GetNullableInt(dataReader, "CO2").HasValue;
            deriv.HasEnginePower  = DataUtil.GetNullableInt(dataReader, "BHP").HasValue;
            deriv.HasPayload      = DataUtil.GetNullableInt(dataReader, "Payload").HasValue;
            deriv.HasTorque       = DataUtil.GetNullableInt(dataReader, "TorqueNm").HasValue;
            deriv.HasBrakedTowing = DataUtil.GetNullableInt(dataReader, "BrakedTowing").HasValue;
            deriv.HasSeats        = DataUtil.GetNullableInt(dataReader, "Seats").HasValue;
            deriv.HasEngineSize   = DataUtil.GetNullableInt(dataReader, "CC").HasValue;
            deriv.HasMpg          = DataUtil.GetNullableInt(dataReader, "MPG").HasValue;

            deriv.ListPrice      = DataUtil.GetInt32(dataReader, "ListPrice");
            deriv.InsuranceGroup = DataUtil.GetInt32(dataReader, "IG");

            deriv.CC        = DataUtil.GetInt32(dataReader, "CC");
            deriv.Cylinders = DataUtil.GetInt32(dataReader, "Cylinders");
            deriv.Bhp       = DataUtil.GetInt32(dataReader, "BHP");

            if (!(deriv.Bhp > 0))
            {
                int    ps            = DataUtil.GetInt32(dataReader, "PS");
                double calculatedBhp = ps / PsValue * BhpValue;
                deriv.Bhp = Convert.ToInt32(Math.Round(calculatedBhp));
            }

            deriv.Wheelbase     = DataUtil.GetInt32(dataReader, "wheelbase");
            deriv.TurningCircle = DataUtil.GetInt32(dataReader, "TurningCircle");
            deriv.BrakedTowing  = DataUtil.GetInt32(dataReader, "BrakedTowing");

            deriv.Width   = DataUtil.GetInt32(dataReader, "Width");
            deriv.Height  = DataUtil.GetInt32(dataReader, "Height");
            deriv.Weight  = DataUtil.GetInt32(dataReader, "Weight");
            deriv.Payload = DataUtil.GetInt32(dataReader, "Payload");

            deriv.CO2Emissions   = DataUtil.GetInt32(dataReader, "CO2");
            deriv.MilesPerGallon = DataUtil.GetInt32(dataReader, "MPG");
            deriv.Seats          = DataUtil.GetInt32(dataReader, "Seats");
            deriv.TorqueLbFt     = DataUtil.GetInt32(dataReader, "TorqueLbFt");
            deriv.TorqueNm       = DataUtil.GetInt32(dataReader, "TorqueNm");
            deriv.Transmission   = DataUtil.GetString(dataReader, "Transmission", "-");
            deriv.FuelDelivery   = DataUtil.GetString(dataReader, "FuelDelivery", "-");
            deriv.FuelCapacity   = DataUtil.GetInt32(dataReader, "FuelCapacity");
            deriv.Gears          = DataUtil.GetString(dataReader, "Gears", "-");
            deriv.FrontOverhang  = DataUtil.GetInt32(dataReader, "OverhangFront");
            deriv.RearOverhang   = DataUtil.GetInt32(dataReader, "OverhangRear");
            deriv.EuroEmissions  = DataUtil.GetInt32(dataReader, "EuroEmissions");
            deriv.Valves         = DataUtil.GetInt32(dataReader, "Valves");

            deriv.HasTechData = DataUtil.GetBoolean(dataReader, "Tech");

            if (!dataReader.IsDBNull(dataReader.GetOrdinal("Introduced")))
            {
                deriv.Introduced = (DateTime)dataReader["Introduced"];
            }
            else
            {
                deriv.Introduced = DateTime.MaxValue;
            }

            if (!dataReader.IsDBNull(dataReader.GetOrdinal("Discontinued")))
            {
                deriv.Discontinued = (DateTime)dataReader["Discontinued"];
            }
            else
            {
                deriv.Discontinued = DateTime.MaxValue;
            }

            IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

            deriv.FromYearPlate = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "FromYearPlateId"));
            deriv.ToYearPlate   = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "ToYearPlateId"));

            return(deriv);
        }
        /// <summary>
        /// Gets a van model from a data reader
        /// </summary>
        /// <param name="dataReader">The data reader</param>
        /// <returns>Van model representation of the data</returns>
        private IVanModel GetModelFromDataReader(SqlDataReader dataReader)
        {
            VanModel model = new VanModel();

            model.Id = (int)dataReader["VANModId"];
            if (!dataReader.IsDBNull(dataReader.GetOrdinal("Model")))
            {
                model.BodyStyle = (string)dataReader["Model"];
            }
            else
            {
                model.BodyStyle = String.Empty;
            }

            model.Name           = (string)dataReader["RangeModel"];
            model.NameWithYears  = (string)dataReader["RangeModelYear"];
            model.IntroducedYear = (int)dataReader["ModelIntroduced"];
            if (!dataReader.IsDBNull(dataReader.GetOrdinal("ModelDiscontinued")))
            {
                model.DiscontinuedYear = (int)dataReader["ModelDiscontinued"];
            }
            else
            {
                model.DiscontinuedYear = Int32.MaxValue;
            }

            model.RangeId = (int)dataReader["VANRanId"];

            IYearPlateProvider yearPlateProvider = ObjectFactory.GetInstance <IYearPlateProvider>();

            model.FromYearPlate = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "FromYearPlateId"));
            model.ToYearPlate   = yearPlateProvider.FromId(DataUtil.GetInt32(dataReader, "ToYearPlateId"));

            IVanClassificationProvider classificationProvider = ObjectFactory.GetInstance <IVanClassificationProvider>();

            model.Classification = classificationProvider.GetClassification(DataUtil.GetInt32(dataReader, "ClassificationId"));

            model.HasReview = DataUtil.GetBoolean(dataReader, "Review");

            model.HasTechData = DataUtil.GetBoolean(dataReader, "Tech");

            if (dataReader.IsDBNull(dataReader.GetOrdinal("CAPBodyStyleId")))
            {
                model.CAPBodyStyleId = String.Empty;
            }
            else
            {
                model.CAPBodyStyleId = Convert.ToString(dataReader["CAPBodyStyleId"]);
            }

            if (dataReader.IsDBNull(dataReader.GetOrdinal("CAPRanId")))
            {
                model.CAPRanId = String.Empty;
            }
            else
            {
                model.CAPRanId = Convert.ToString(dataReader["CAPRanId"]);
            }

            model.UrlVariantIndex = 0;

            return(model);
        }