/// <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> /// Gets the mileage adjusted valuation. /// </summary> /// <param name="derivId">The derivative id.</param> /// <param name="plateId">The plate id.</param> /// <param name="mileage">The mileage.</param> /// <param name="section">The section.</param> /// <returns>The valuation</returns> public IValuation GetMileageAdjustedValuation(int derivId, int plateId, int mileage, CarValuationSection section) { Valuation valuation = new Valuation(); PopulateMileageAdjustedValuation(derivId, plateId, mileage, section, valuation); if (valuation.Result == ValuationResultType.Error) { return(null); } else { return(valuation); } }
/// <summary> /// Populates a valuation object based on the mileage /// </summary> /// <param name="derivId">The derivative id</param> /// <param name="plateId">The plate id</param> /// <param name="mileage">The mileage</param> /// <param name="section">The valuation section</param> /// <param name="valuation">The valuation</param> private static void PopulateMileageAdjustedValuation(int derivId, int plateId, int mileage, CarValuationSection section, Valuation valuation) { if (plateId >= GetFromYearPlateIdForSection(section) && plateId <= GetToYearPlateIdForSection(section)) { Sproc procedure = new Sproc("Used_Select_Valuation", DatabaseName); procedure.Parameters.Add("@CARDerId", SqlDbType.Int).Value = derivId; procedure.Parameters.Add("@YearPlateId", SqlDbType.Int).Value = plateId; if (mileage > 0) { procedure.Parameters.Add("@Mileage", SqlDbType.Int).Value = mileage; } else { procedure.Parameters.Add("@Mileage", SqlDbType.Int).Value = DBNull.Value; } valuation.Result = ValuationResultType.Error; using (SqlDataReader reader = procedure.ExecuteReader()) { if (reader != null && reader.Read()) { PopulateValuationFromDataReader(reader, valuation); if (mileage == 0) { valuation.Result = ValuationResultType.StandardMileage; } else if (mileage == valuation.Mileage) { valuation.Result = ValuationResultType.MileageAdjusted; } else if (mileage > valuation.Mileage) { valuation.Result = ValuationResultType.MaximumMileage; } else if (mileage < valuation.Mileage) { valuation.Result = ValuationResultType.MinimumMileage; } } } } }