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);
        }
Esempio n. 3
0
        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));
        }