Exemple #1
0
        /// <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"];
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        /// <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;
                        }
                    }
                }
            }
        }