private CountryModel MapFromAmdModel(AmdService.Model.Country amdModel, IQueryable <AmdService.Model.Region> deepRegionResponse) { //Country model implementation CountryModel model = new CountryModel(); model.Code = amdModel.Code; model.Name = amdModel.Name; //OData V4 do not allow for deep expand so we have to do it in this way IQueryable <AmdService.Model.Region> region = deepRegionResponse .Where(x => x.IsActive) ; //====================================== model.RegionCode = (region?.Where(x => x.Code == model.Code).FirstOrDefault())?.ParentCode; model.IsDeleted = (true & amdModel.DeleteDate != null); model.ReplacedBy = amdModel.MergeToCode; return(model); }
protected override void LoadAndParseODataClientMethod() { //OData Countries do not support Reporting period name IQueryable <AmdService.Model.Country> response = ODataClientClient.Countries .Where(x => x.IsActive) .Where(x => x.IsIso); //OData V4 do not allow for deep expand IQueryable <AmdService.Model.Region> deepRegionResponse = ODataClientClient.Regions; //===================================== if (response == null || deepRegionResponse == null) { throw new Exception(SynchronizerResource.ErrServiceResponseIsMissing); } foreach (var line in response) { CountryModel parsedModel = MapFromAmdModel(line, deepRegionResponse); if (parsedModel.IsValid) { parsedData.Add(parsedModel.Code, parsedModel); } } }