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); }