public override async Task <ExchangeRateReply> GetExchangeRate(ExchangeRateRequest request, ServerCallContext context) { var reply = new ExchangeRateReply(); var rate = await _currencyExchangeRate.GetRate(request.CurrencyTypeFrom, request.CurrencyTypeTo); reply.ExchangeRate = (double)rate; return(reply); }
private async Task <double> GetExchangeRateAsync(Currency currencyTypeFrom, Currency currencyTypeTo) { using var channel = GrpcChannel.ForAddress(_configuration["ExchangeRateService:BaseAddress"]); var client = new ExchangeRateManager.ExchangeRateManagerClient(channel); var request = new ExchangeRateRequest { CurrencyTypeFrom = currencyTypeFrom.ToAlias(), CurrencyTypeTo = currencyTypeTo.ToAlias(), }; ExchangeRateReply exchangeRate = await client.GetExchangeRateAsync(request); return(exchangeRate.ExchangeRate); }
public override Task <ExchangeRateReply> GetExchangeRate(ExchangeRateRequest request, ServerCallContext context) { double exchangeRate = 0.00; if ((request.CurrencyTypeFrom == UsDollarAlias && request.CurrencyTypeTo == BulgarianLevAlias) || (request.CurrencyTypeFrom == BulgarianLevAlias && request.CurrencyTypeTo == UsDollarAlias)) { exchangeRate = 0.56; } var reply = new ExchangeRateReply { ExchangeRate = exchangeRate }; return(Task.FromResult(reply)); }