/// <summary> /// Gets the valuation. /// </summary> /// <param name="derivId">The derivative id.</param> /// <param name="plateId">The plate id.</param> /// <param name="section">The section.</param> /// <returns> /// The Van valuation /// </returns> public IVanValuation GetValuation(int derivId, int plateId, VanValuationSection section) { VanValuation result = new VanValuation(); PopulateVanValuation(derivId, plateId, section, result); if (result.Result == ValuationResultType.Error) { result = null; } return(result); }
/// <summary> /// Populates the valuation segment from the data reader. /// </summary> /// <param name="dataReader">The data reader.</param> /// <param name="valuation">The valuation.</param> private static void PopulateValuationSegmentFromDataReader(SqlDataReader dataReader, VanValuation valuation) { int mileage = DataUtil.GetInt32(dataReader, "Mileage"); if (mileage > 0) { IVanValuationSegment segment = new VanValuationSegment { PrivateHigh = DataUtil.GetInt32(dataReader, "PrivateHigh"), PrivateLow = DataUtil.GetInt32(dataReader, "PrivateLow"), AverageHigh = DataUtil.GetInt32(dataReader, "AverageHigh"), AverageLow = DataUtil.GetInt32(dataReader, "AverageLow"), RetailHigh = DataUtil.GetInt32(dataReader, "RetailHigh"), RetailLow = DataUtil.GetInt32(dataReader, "RetailLow"), }; valuation.ValuationSegments.Add(mileage, segment); } }
/// <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; } } } }