public SingleSymbolPriceHandler(
     CryptoCompareHttpClient aCryptoCompareHttpClient,
     IValidator <SingleSymbolPriceRequest> aSingleSymbolPriceRequestValidator
     )
 {
     CryptoCompareHttpClient           = aCryptoCompareHttpClient;
     SingleSymbolPriceRequestValidator = aSingleSymbolPriceRequestValidator;
 }
        public async Task <SingleSymbolPriceResponse> Handle(SingleSymbolPriceRequest aSingleSymbolPriceRequest, CancellationToken aCancellationToken)
        {
            ValidationResult validationResult = SingleSymbolPriceRequestValidator.Validate(aSingleSymbolPriceRequest);

            if (!validationResult.IsValid)
            {
                throw new ValidationException(validationResult.Errors);
            }
            //?symbol=USDAGLD&range=MINUTE_1";
            string uri = $"{SingleSymbolPriceUrl}?{aSingleSymbolPriceRequest.ToQueryString()}";
            var    singleSymbolPriceResponse = new SingleSymbolPriceResponse();

            singleSymbolPriceResponse.Prices = await CryptoCompareHttpClient.GetJsonAsync <Dictionary <string, decimal> >(uri);

            return(singleSymbolPriceResponse);
        }