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