コード例 #1
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
        public void TestTransformAffiliationsFirstProviderTypeFacility()
        {
            VitalsProviderSearch sourceData =
                new VitalsProviderSearch {
                providers = new List <Provider> {
                    new Provider()
                }
            };

            sourceData.providers[0].type      = "F";
            sourceData.providers[0].locations = new List <Location> {
                new Location()
            };
            sourceData.providers[0].locations[0].contracts = new List <Contract> {
                new Contract()
            };
            sourceData.providers[0].locations[0].contracts[0].hospital_affiliations =
                new List <HospitalAffiliation> {
                new HospitalAffiliation()
                {
                    name = "foo"
                }
            };

            ProviderSearchResults result = Mapper.Transform(sourceData);

            result.providers[0].affiliations[0].Should().Be("foo");
        }
コード例 #2
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
        public void TestTransformEmptyAddressForFirstProviderTypeP()
        {
            VitalsProviderSearch sourceData = new VitalsProviderSearch();

            sourceData.providers = new List <Provider> {
                new Provider()
            };
            sourceData.providers[0].type = "P";

            ProviderSearchResults result = Mapper.Transform(sourceData);

            result.providers[0].address.Should().BeNull();
        }
コード例 #3
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
        public void TestTransformAddressForFirstProviderTypeP()
        {
            VitalsProviderSearch sourceData = new VitalsProviderSearch();

            sourceData.providers = new List <Provider> {
                new Provider()
            };
            sourceData.providers[0].type      = "P";
            sourceData.providers[0].locations = new List <Location> {
                new Location(), new Location(), new Location()
            };
            sourceData.providers[0].locations[0].address = new Address()
            {
                addr_line1 = "123 main st"
            };
            ProviderSearchResults result = Mapper.Transform(sourceData);

            result.providers[0].address.addr_line1.Should().Be("123 main st");
        }
コード例 #4
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
        public void TestTransformLanguagesForFirstProvider()
        {
            VitalsProviderSearch sourceData =
                new VitalsProviderSearch {
                providers = new List <Provider> {
                    new Provider()
                }
            };

            sourceData.providers[0].languages = new List <Language> {
                new Language {
                    name = "Esperanto"
                }, new Language {
                    name = "Catalan"
                }
            };

            ProviderSearchResults result = Mapper.Transform(sourceData);

            result.providers[0].languages[0].Should().Be("Esperanto");
            result.providers[0].languages[1].Should().Be("Catalan");
        }
コード例 #5
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
 public void TestTransformEmptyVitalsSearch()
 {
     VitalsProviderSearch  sourceData = new VitalsProviderSearch();
     ProviderSearchResults result     = Mapper.Transform(sourceData);
 }
コード例 #6
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
 public void ShouldDeserializeProviderResultsFromVitals()
 {
     string jsonRaw = File.ReadAllText(@"..\..\Refactor - Mapper\testData.json");
     VitalsProviderSearch  vitalsProviderSearch = JsonConvert.DeserializeObject <VitalsProviderSearch>(jsonRaw);
     ProviderSearchResults result = Mapper.Transform(vitalsProviderSearch);
 }
コード例 #7
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
 public void ShouldNotThrowGivenEmptyJsonString()
 {
     VitalsProviderSearch  vitalsProviderSearch = JsonConvert.DeserializeObject <VitalsProviderSearch>("");
     ProviderSearchResults result = Mapper.Transform(vitalsProviderSearch);
 }
コード例 #8
0
ファイル: MappingTests.cs プロジェクト: kuoman/CSharpPractice
 public void TestSetup()
 {
     _sourceData = JsonConvert.DeserializeObject <VitalsProviderSearch>(ProviderNameSearchVitalsJson);
 }
コード例 #9
0
ファイル: Mapper.cs プロジェクト: kuoman/CSharpPractice
        public static ProviderSearchResults Transform(VitalsProviderSearch sourceData)
        {
            ProviderSearchResults newResult = new ProviderSearchResults();

            if (sourceData?._meta?.pages != null)
            {
                newResult.pages.total   = sourceData._meta.pages.total;
                newResult.pages.current = sourceData._meta.pages.current;
            }

            if (sourceData?.providers == null)
            {
                return(newResult);
            }
            foreach (var sourceProvider in sourceData.providers)
            {
                MapperRefactor.DataBags.Results.Address sourceProviderFirstLocationAddress = null;
                string phoneNumber = null;

                if (sourceProvider.locations != null && sourceProvider.locations.Count > 0)
                {
                    sourceProviderFirstLocationAddress              = new MapperRefactor.DataBags.Results.Address();
                    sourceProviderFirstLocationAddress.addr_line1   = sourceProvider.locations[0].address?.addr_line1;
                    sourceProviderFirstLocationAddress.addr_line2   = sourceProvider.locations[0].address?.addr_line2;
                    sourceProviderFirstLocationAddress.city         = sourceProvider.locations[0].address?.city;
                    sourceProviderFirstLocationAddress.state_code   = sourceProvider.locations[0].address?.state_code;
                    sourceProviderFirstLocationAddress.sub_national = sourceProvider.locations[0].address?.sub_national;
                    sourceProviderFirstLocationAddress.county       = sourceProvider.locations[0].address?.county;
                    sourceProviderFirstLocationAddress.country_code = sourceProvider.locations[0].address?.country_code;
                    sourceProviderFirstLocationAddress.postal_code  = sourceProvider.locations[0].address?.postal_code;
                    sourceProviderFirstLocationAddress.latitude     = sourceProvider.locations[0].address?.latitude;
                    sourceProviderFirstLocationAddress.longitude    = sourceProvider.locations[0].address?.longitude;

                    phoneNumber = sourceProvider.locations?[0]?.phones?.voice?[0]?.number;
                }

                var provider = new MapperRefactor.DataBags.Results.Provider();
                provider.id           = sourceProvider.id;
                provider.name         = sourceProvider.name;
                provider.gender       = sourceProvider.gender;
                provider.degrees      = new List <string>();
                provider.languages    = new List <string>();
                provider.address      = sourceProviderFirstLocationAddress;
                provider.phone_number = phoneNumber;
                provider.affiliations = new List <string>();
                provider.specialties  = new List <string>();
                provider.awards       = new List <string>();

                if (sourceProvider.degrees != null)
                {
                    foreach (var degree in sourceProvider.degrees)
                    {
                        provider.degrees.Add(degree);
                    }
                }

                if (sourceProvider.languages != null)
                {
                    foreach (var lang in sourceProvider.languages)
                    {
                        provider.languages.Add(lang.name);
                    }
                }

                if (sourceProvider.locations != null)
                {
                    Location location = sourceProvider.locations.FirstOrDefault();

                    if (location?.contracts != null && location.contracts.Count > 0 && location.contracts[0].hospital_affiliations != null)
                    {
                        foreach (var affiliation in location.contracts[0].hospital_affiliations)
                        {
                            provider.affiliations.Add(affiliation.name);
                        }
                    }

                    if (sourceProvider.type == "F")
                    {
                        if (location != null)
                        {
                            if (location.contracts?[0].specializations != null)
                            {
                                foreach (var specialization in location.contracts[0].specializations)
                                {
                                    if (specialization.field_specialty != null)
                                    {
                                        provider.specialties.Add(specialization.field_specialty.name);
                                    }
                                }
                            }

                            if (sourceProvider.bdc?.bdtc != null)
                            {
                                foreach (var award in location.bdc.bdtc)
                                {
                                    if (award != null)
                                    {
                                        provider.awards.Add(award.name);
                                    }
                                }
                            }
                        }
                    }
                }

                if (sourceProvider.type == "P")
                {
                    if (sourceProvider.specializations != null)
                    {
                        foreach (var specialization in sourceProvider.specializations)
                        {
                            if (specialization.field_specialty != null)
                            {
                                provider.specialties.Add(specialization.field_specialty.name);
                            }
                        }
                    }

                    if (sourceProvider.bdc?.bdtc != null)
                    {
                        foreach (var award in sourceProvider.bdc.bdtc)
                        {
                            if (award != null)
                            {
                                provider.awards.Add(award.name);
                            }
                        }
                    }
                }

                newResult.providers.Add(provider);
            }

            return(newResult);
        }