public BaselineData ComputeBaselinePPU(Models.Baseline baseline)
        {
            double sgdM = (double)baseline.originModifier;
            double usdM = (double)baseline.usdModifier;
            double gbpM = (double)baseline.gdpModifier;

            BaselineData data = new BaselineData
            {
                sgdToUsdBaseline = usdM / sgdM,
                usdToSgdBaseline = sgdM / usdM,
                sgdToGbpBaseline = gbpM / sgdM,
                gbpToSgdBaseline = sgdM / gbpM,
                usdToGbpBaseline = (gbpM / sgdM) * (sgdM / usdM),
                gbpToUsdBaseline = (usdM / sgdM) * (sgdM / gbpM),
                hasValues        = true
            };

            /*_logger.LogInformation("Hello11 " + data.sgdToUsdBaseline);
            *  _logger.LogInformation("Hello12 " + data.usdToSgdBaseline);
            *  _logger.LogInformation("Hello13 " + data.sgdToGbpBaseline);
            *  _logger.LogInformation("Hello14 " + data.gbpToSgdBaseline);
            *  _logger.LogInformation("Hello15 " + data.usdToGbpBaseline);
            *  _logger.LogInformation("Hello16 " + data.gbpToUsdBaseline);*/

            //_cache.Set(cacheKey, data);
            return(data);
        }
        public async Task <Models.Baseline> GetBaseline()
        {
            var request  = new HttpRequestMessage(HttpMethod.Get, "/api/v1/trade/baseline");
            var client   = _clientFactory.CreateClient("TradeBankProject");
            var response = await client.SendAsync(request);

            dynamic message = response.Content;

            Models.Baseline baseline = new Models.Baseline
            {
                recordId       = message.recordId,
                originType     = message.originType,
                originModifier = message.originModifier,
                usdModifier    = message.usdModifier,
                gdpModifier    = message.gbpModifier,
                createdTs      = message.createdTs,
                version        = message.version
            };

            return(baseline);
        }
        public override async Task ProcessingLogic(IConsumer <string, string> consumer, ConsumeResult <string, string> message)
        {
            dynamic kafkaMessage = JsonConvert.DeserializeObject(message.Value);

            //_logger.LogInformation($"message {message.Value}");

            if (kafkaMessage.tradeId != null)
            {
                //_logger.LogInformation("==========================================================================TradeOffer");

                Models.UserInput userInput = new Models.UserInput
                {
                    tradeId          = kafkaMessage.tradeId,
                    sourceCurrency   = kafkaMessage.paymentCurrency,
                    PPU              = kafkaMessage.pricePerUnit,
                    purchaseAmount   = kafkaMessage.requestedAmount,
                    purchaseCurrency = kafkaMessage.requestedCurrency,
                    status           = "Received",
                    timestampCreated = DateTime.Now
                };

                String status = await _tradeAlgo.ShouldAcceptTrade(userInput, baselineData);

                userInput.status = status;

                var gg = await _userInput.AddUserInput(userInput);
            }
            else if (kafkaMessage.RecordId != null)
            {
                //_logger.LogInformation("==========================================================================TradeBaseline");

                /*_logger.LogInformation("Hello1 " + baselineData.sgdToUsdBaseline);
                *  _logger.LogInformation("Hello2 " + baselineData.usdToSgdBaseline);
                *  _logger.LogInformation("Hello3 " + baselineData.sgdToGbpBaseline);
                *  _logger.LogInformation("Hello4 " + baselineData.gbpToSgdBaseline);
                *  _logger.LogInformation("Hello5 " + baselineData.usdToGbpBaseline);
                *  _logger.LogInformation("Hello6 " + baselineData.gbpToUsdBaseline);*/

                Models.Baseline baseline = new Models.Baseline
                {
                    recordId       = kafkaMessage.RecordId,
                    originType     = kafkaMessage.OriginType,
                    originModifier = kafkaMessage.OriginModifier,
                    usdModifier    = kafkaMessage.UsdModifier,
                    gdpModifier    = kafkaMessage.GbpModifier,
                    createdTs      = kafkaMessage.CreatedTs,
                    version        = kafkaMessage.Version
                };

                baselineData = _tradeAlgo.ComputeBaselinePPU(baseline);

                /*_logger.LogInformation("Hello11 " + baselineData.sgdToUsdBaseline);
                *  _logger.LogInformation("Hello12 " + baselineData.usdToSgdBaseline);
                *  _logger.LogInformation("Hello13 " + baselineData.sgdToGbpBaseline);
                *  _logger.LogInformation("Hello14 " + baselineData.gbpToSgdBaseline);
                *  _logger.LogInformation("Hello15 " + baselineData.usdToGbpBaseline);
                *  _logger.LogInformation("Hello16 " + baselineData.gbpToUsdBaseline);*/
            }
            else
            {
                _logger.LogInformation("==========================================================================ERROR, wrong format");
                _logger.LogInformation($"message {message.Value}");
            }

            consumer.Commit(message);
        }