private ExchangeRateModel MapFromAmdModel(AmdService.Model.FxRate amdModel) { //ExchangeRate model implementation ExchangeRateModel model = new ExchangeRateModel(); model.Code = amdModel.CurrencyCode; model.Name = amdModel.Currency?.Name; if (amdModel.DailyRate != null) { double?parsedDollarRateClosing = Convert.ToDouble(amdModel.DailyRate, new CultureInfo("en-US")); if (amdModel.Unit > 0) { model.Value = parsedDollarRateClosing / (double)amdModel.Unit; } else { model.Value = parsedDollarRateClosing; } model.RateDate = amdModel.RateDate.LocalDateTime; model.IsDeleted = (true & amdModel.Currency?.DeleteDate != null); } else { //when Currency is deleted model.Value = 5.0000000000000000; // default model.RateDate = null; // default model.IsDeleted = true; } return(model); }
protected override void LoadAndParseODataClientMethod() { //OData FxRates do not support Reporting period name IQueryable <AmdService.Model.FxRate> response = ODataClientClient.FxRates .Expand("Currency") .Where(x => x.Currency.IsActive); if (response == null) { throw new Exception(SynchronizerResource.ErrServiceResponseIsMissing); } foreach (var line in response) { ExchangeRateModel parsedModel = MapFromAmdModel(line); if (parsedModel.IsValid) { parsedData.Add(parsedModel.Code, parsedModel); } } }