public static void ForCar(IGetCarSpecifications query, IHaveCarInformation request, out IList<CarSpecification> carSpecifications)
 {
     query.GetCarSpecifications(request);
     carSpecifications = query.CarSpecifications != null
         ? query.CarSpecifications.ToList()
         : new List<CarSpecification>();
 }
 public BaseRetrievalMetric(IHaveCarInformation request, IRespondWithValuation valuation,
     IReadOnlyRepository repository)
 {
     _request = request;
     _repository = repository;
     Valuation = valuation;
 }
        public void GetStatistics(IHaveCarInformation request)
        {
            try
            {
                Statistics = _repository.Get<StatisticDto>(StatisticDto.SelectForCarIdMakeYear, new {request.CarId, request.Year, request.MakeId});

                //Statistics = _repository.GetAll<StatisticDto>(StatisticDto.SelectAll, StatisticDto.CacheAllKey)
                //    .Where(s => (s.MetricId == (int) MetricTypes.AccidentDistribution) ||
                //                (s.MetricId == (int) MetricTypes.AmortisedValues && s.CarId == request.CarId && s.YearId == request.Year) ||
                //                (s.MetricId == (int) MetricTypes.AreaFactors) ||
                //                (s.MetricId == (int) MetricTypes.AuctionFactors && s.MakeId == request.MakeId) ||
                //                (s.MetricId == (int) MetricTypes.RepairIndex && s.YearId == request.Year) ||
                //                (s.MetricId == (int) MetricTypes.TotalSalesByAge && s.MakeId == request.MakeId) ||
                //                (s.MetricId == (int) MetricTypes.TotalSalesByGender && s.MakeId == request.MakeId) ||
                //                (RetailMetrics.Contains(s.MetricId) && s.CarId == request.CarId && s.YearId == request.Year) ||
                //                (PerformanceMetrics.Contains(s.MetricId) && s.CarId == request.CarId));

                //if (!Statistics.Any())
                //{
                //    Statistics = _repository.Get<StatisticDto>(StatisticDto.SelectForCarIdMakeYear,
                //        new {request.CarId, request.Year, request.MakeId}, StatisticDto.CacheStatisticsKey);
                //}
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error getting Statistics data because of {0}", ex, ex.Message);
                throw;
            }
        }
 public when_getting_car_information()
 {
     _request = LaceRequestCarInformationRequestBuilder.ForCarId_107483_ButNoVin();
     _repository = new FakeCarInfoRepository();
     _vin12Repository = new FakeVin12CarInfoRepository(_request.Vin);
     _getCarInformation = new CarInformationQuery(_repository);
 }
 public static IRetrieveValuationFromMetrics GetValuationFromMetrics(IHaveCarInformation request)
 {
     return new FakeBaseRetrievalMetric(request, new Valuation())
         .SetupDataSources()
         .GenerateData()
         .BuildValuation();
 }
        public when_getting_amortisation_metric()
        {
            _request = LaceRequestCarInformationRequestBuilder.ForCarId_107483();
            var stats = MetricsBuilder.GetStatistics();
            var bands = MetricsBuilder.GetBands();

            _metric = new AmortisedValueMetric(_request, stats, bands);
        }
 public when_transforming_lighstone_response()
 {
     _request = new[] {new LicensePlateNumberLightstoneOnlyRequest()};
     _carInformationRequest = LaceRequestCarInformationRequestBuilder.ForCarId_107483_ButNoVin();
     _retrieveValuationFromMetrics =
         LighstoneVehicleInformationBuilder.ForValuationFromMetrics(_carInformationRequest);
     _retrieveCarInformation = LighstoneVehicleInformationBuilder.ForCarInformation("SB1KV58E40F039277");
 }
 public static void OfBaseRetrievalMetric(IHaveCarInformation request, IReadOnlyRepository repository, out IRetrieveValuationFromMetrics metrics)
 {
     metrics =
        new BaseRetrievalMetric(request, new Valuation(),
            repository)
            .SetupDataSources()
            .GenerateData()
            .BuildValuation();
 }
        private void GetCarInformationWithVin(IHaveCarInformation request)
        {
            if (CannotGetWithVin(request.Vin))
                return;

            Cars = _repository.GetAll<CarInformationDto>(car => car.Vin == request.Vin);

            if (!Cars.Any())
                Cars = _repository.Get<CarInformationDto>(CarInformationDto.SelectWithVin, new {request.Vin});
        }
 public void GetCarInformation(IHaveCarInformation request)
 {
     try
     {
         GetCarInformationWithVin(request);
         GetWithCarId(request);
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Error getting Car Information because of {0}", ex, ex.Message);
         throw;
     }
 }
 public void GetBands(IHaveCarInformation request)
 {
     try
     {
         Bands = _repository.GetAll<Band>(null);
         if (!Bands.Any())
             Bands = _repository.Get<Band>(Band.SelectAll, new {});
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Error getting Band data because of {0}", ex, ex.Message);
         throw;
     }
 }
 public void GetMakes(IHaveCarInformation request)
 {
     try
     {
         Makes = _repository.GetAll<Make>(null);
         if (!Makes.Any())
             Makes = _repository.Get<Make>(Make.SelectAll, new {});
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Error getting Make data because of {0}", ex, ex.Message);
         throw;
     }
 }
 public void GetMunicipalities(IHaveCarInformation request)
 {
     try
     {
         Municipalities = _repository.GetAll<Municipality>(null);
         if (!Municipalities.Any())
             Municipalities = _repository.Get<Municipality>(Municipality.SelectAll, new { });
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Error getting Metric data because of {0}", ex, ex.Message);
         throw;
     }
 }
        public void GetCarSpecifications(IHaveCarInformation request)
        {
            try
            {
                CarSpecifications = _repository.GetAll<CarSpecification>(null)
                    .Where(w => w.CarId == request.CarId);

                if (!CarSpecifications.Any())
                    CarSpecifications = _repository.Get<CarSpecification>(CarSpecification.SelectWithCarId, new {request.CarId});
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error getting Car Specification data because of {0}", ex, ex.Message);
            }
        }
        private void GetWithCarId(IHaveCarInformation request)
        {
            if (NoNeedToContinue())
                return;

            if (!HasValidCarIdInformation(request))
            {
                Cars = new List<CarInformationDto>();
                return;
            }

            Cars = _repository.GetAll<CarInformationDto>(car => car.CarId == request.CarId);

            if (!Cars.Any())
                Cars = _repository.Get<CarInformationDto>(CarInformationDto.SelectWithCarId, new {request.CarId});
        }
        public void GetSales(IHaveCarInformation request)
        {
            try
            {
                Sales =
                    _repository.GetAll<Sale>(sale => sale.Car_ID == request.CarId && sale.Year_ID == request.Year)
                        .OrderByDescending(o => o.SaleDateTime)
                        .Take(5);

                if (!Sales.Any())
                {
                    Sales = _repository.Get<Sale>(Sale.SelectTopFiveSalesForCarIdAndYear, new {request.CarId, request.Year});
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error getting Sales data because of {0}", ex, ex.Message);
                throw;
            }
        }
 public GetCarInformation(int carId, IReadOnlyRepository repository)
 {
     _repository = repository;
     CarInformationRequest = new CarInformationRequest(carId);
 }
 public GetCarInformation(int carId, int year, IReadOnlyRepository repository)
 {
     _repository = repository;
     _year = year;
     CarInformationRequest = new CarInformationRequest(carId, year);
 }
 public GetCarInformation(string vinNumber, IReadOnlyRepository repository)
 {
     _repository = repository;
     CarInformationRequest = new CarInformationRequest(vinNumber);
 }
 private GetCarInformation(bool empty)
 {
     CarInformationDto = new CarInformationDto();
     CarInformationRequest = new CarInformationRequest(0, "", "", "", "", "", 0, 0, false);
 }
        public IRetrieveValuationFromMetrics ForLightstoneMetricValuationResponse(IHaveCarInformation request)
        {

            return FakeLighstoneRetrievalData.GetValuationFromMetrics(request);
        }
 public FakeBaseRetrievalMetric(IHaveCarInformation request, IRespondWithValuation valuation)
 {
     _request = request;
     Valuation = valuation;
 }
 public when_getting_bands()
 {
     _repository = new FakeBandsRepository();
     _getBands = new BandQuery(_repository);
     _request = LaceRequestCarInformationRequestBuilder.ForCarId_107483();
 }
 public when_getting_statistics()
 {
     _repository = new FakeStatisticsRepository();
     _getStatistics = new StatisticsQuery(_repository);
     _request = LaceRequestCarInformationRequestBuilder.ForCarId_107483();
 }
 private static bool HasValidCarIdInformation(IHaveCarInformation request)
 {
     return request.CarId > 0;
 }
 public static IRetrieveValuationFromMetrics ForValuationFromMetrics(IHaveCarInformation request)
 {
     return FakeLighstoneRetrievalData.GetValuationFromMetrics(request);
 }