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); } }
/// <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; } } } }
/// <summary> /// Populates a valuation from a data reader /// </summary> /// <param name="reader">The datareader to use</param> /// <param name="valuation">The valuation to populate</param> private static void PopulateValuationFromDataReader(SqlDataReader reader, Valuation valuation) { valuation.Derivative = CarDerivative.FromId((int)reader["CARDerId"]); valuation.YearPlate = yearPlateProvider.FromId((short)reader["YearPlateId"]); valuation.Mileage = (int)reader["Mileage"]; valuation.OriginalPrice = (int)reader["New"]; valuation.FranchiseDealer = (int)reader["Franchise"]; valuation.IndependentDealer = (int)reader["Independent"]; valuation.PrivateGood = (int)reader["PrivateGood"]; valuation.PrivatePoor = (int)reader["PrivatePoor"]; valuation.PartExchange = (int)reader["PartExchange"]; }
/// <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); }