Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 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;
                    }
                }
            }
        }