public static string GetFacilityId(FacilityDataType facility) { if ((facility != null) && (facility.FacilitySiteIdentity != null) && (facility.FacilitySiteIdentity.FacilitySiteIdentifier != null) && !string.IsNullOrEmpty(facility.FacilitySiteIdentity.FacilitySiteIdentifier.Value)) { return(facility.FacilitySiteIdentity.FacilitySiteIdentifier.Value); } return(null); }
public static FacilityDetailsDataType CombineFacilityDetailsQueryResults(List <FacilityDetailsDataType> list) { if (CollectionUtils.IsNullOrEmpty(list)) { return(new FacilityDetailsDataType()); } Dictionary <string, FacilityDataType> facilities = new Dictionary <string, FacilityDataType>(); Dictionary <string, AffiliateDataType> affiliates = new Dictionary <string, AffiliateDataType>(); foreach (FacilityDetailsDataType facilityDetails in list) { Dictionary <string, AffiliateDataType> validAffiliates = new Dictionary <string, AffiliateDataType>(); if (!CollectionUtils.IsNullOrEmpty(facilityDetails.FacilityList)) { for (int i = 0; i < facilityDetails.FacilityList.Length; ++i) { FacilityDataType facility = facilityDetails.FacilityList[i]; string facilityId = GetFacilityId(facility); if ((facilityId == null) || facilities.ContainsKey(facilityId)) { continue; } facilities.Add(facilityId, facility); if (!CollectionUtils.IsNullOrEmpty(facilityDetails.AffiliateList)) { if (!CollectionUtils.IsNullOrEmpty(facility.AffiliationList)) { foreach (FacilityFacilityAffiliationDataType facilityAffilitate in facility.AffiliationList) { if (!validAffiliates.ContainsKey(facilityAffilitate.AffiliateIdentifier)) { validAffiliates.Add(facilityAffilitate.AffiliateIdentifier, null); } } } if (!CollectionUtils.IsNullOrEmpty(facility.EnvironmentalInterestList)) { foreach (EnvironmentalInterestDataType environmentalInterest in facility.EnvironmentalInterestList) { if (!CollectionUtils.IsNullOrEmpty(environmentalInterest.AffiliationList)) { foreach (EnvironmentalInterestFacilityAffiliationDataType environmentalInterestAffiliation in environmentalInterest.AffiliationList) { if (!validAffiliates.ContainsKey(environmentalInterestAffiliation.AffiliateIdentifier)) { validAffiliates.Add(environmentalInterestAffiliation.AffiliateIdentifier, null); } } } } } } } } if (!CollectionUtils.IsNullOrEmpty(facilityDetails.AffiliateList)) { foreach (AffiliateDataType affilitate in facilityDetails.AffiliateList) { if (validAffiliates.ContainsKey(affilitate.AffiliateIdentifier) && !affiliates.ContainsKey(affilitate.AffiliateIdentifier)) { affiliates.Add(affilitate.AffiliateIdentifier, affilitate); } } } } FacilityDetailsDataType rtnFacilityDetails = new FacilityDetailsDataType(); if (facilities.Count > 0) { rtnFacilityDetails.FacilityList = new List <FacilityDataType>(facilities.Values).ToArray(); if (affiliates.Count > 0) { rtnFacilityDetails.AffiliateList = new List <AffiliateDataType>(affiliates.Values).ToArray(); } } return(rtnFacilityDetails); }
protected virtual FacilityDetailsDataType ConvertFacilityInterestToFacilityDetails(FacilityInterestDataType facilityInterest) { FacilityDetailsDataType facilityDetails = new FacilityDetailsDataType(); if (CollectionUtils.IsNullOrEmpty(facilityInterest.FacilityInterestSummaryList)) { return(facilityDetails); } List <FacilityDataType> list = new List <FacilityDataType>(facilityInterest.FacilityInterestSummaryList.Length); foreach (var facilitySummary in facilityInterest.FacilityInterestSummaryList) { var facility = new FacilityDataType(); facility.DataSource = facilitySummary.DataSource; facility.LocationAddress = LocationAddressDataType.FromFacilityLocationAddress(facilitySummary.FacilityLocationAddress); facility.FacilitySiteIdentity = new FacilitySiteIdentityDataType(); facility.FacilitySiteIdentity.FacilitySiteIdentifier = facilitySummary.FacilitySiteIdentifier; facility.FacilitySiteIdentity.FacilitySiteName = facilitySummary.FacilitySiteName; if (facilitySummary.FacilitySummaryGeographicLocation != null) { facility.FacilityPrimaryGeographicLocationDescription = new FacilityPrimaryGeographicLocationDescriptionDataType(facilitySummary.FacilitySummaryGeographicLocation); } facility.FacilityURLText = facilitySummary.FacilityURLText; if (!CollectionUtils.IsNullOrEmpty(facilitySummary.EnvironmentalInterestSummaryList)) { List <EnvironmentalInterestDataType> envIntList = new List <EnvironmentalInterestDataType>(facilitySummary.EnvironmentalInterestSummaryList.Length); foreach (EnvironmentalInterestSummaryDataType envIntSumm in facilitySummary.EnvironmentalInterestSummaryList) { EnvironmentalInterestDataType envInt = new EnvironmentalInterestDataType(); envInt.DataSource = envIntSumm.DataSource; envInt.EnvironmentalInterestIdentifier = envIntSumm.EnvironmentalInterestIdentifier; envInt.EnvironmentalInterestTypeText = envIntSumm.EnvironmentalInterestTypeText; envInt.EnvironmentalInterestURLText = envIntSumm.EnvironmentalInterestURLText; envIntList.Add(envInt); } facility.EnvironmentalInterestList = envIntList.ToArray(); } list.Add(facility); } facilityDetails.FacilityList = list.ToArray(); return(facilityDetails); //FacilityInterestDataType facilityInterest = new FacilityInterestDataType(); //if (!CollectionUtils.IsNullOrEmpty(facilityDetails.FacilityList)) //{ // List<FacilityInterestSummaryDataType> rtnList = new List<FacilityInterestSummaryDataType>(facilityDetails.FacilityList.Length); // foreach (FacilityDataType facility in facilityDetails.FacilityList) // { // FacilityInterestSummaryDataType facilitySummary = new FacilityInterestSummaryDataType(); // facilitySummary.DataSource = facility.DataSource; // facilitySummary.FacilityLocationAddress = // FacilityLocationAddressDataType.FromLocationAddress(facility.LocationAddress); // facilitySummary.FacilitySiteIdentifier = facility.FacilitySiteIdentity.FacilitySiteIdentifier; // facilitySummary.FacilitySiteName = facility.FacilitySiteIdentity.FacilitySiteName; // facilitySummary.FacilitySummaryGeographicLocation = (facility.FacilityPrimaryGeographicLocationDescription == null) ? null : // new FacilitySummaryGeographicLocationDataType(facility.FacilityPrimaryGeographicLocationDescription); // facilitySummary.FacilityURLText = facility.FacilityURLText; // if (!CollectionUtils.IsNullOrEmpty(facility.EnvironmentalInterestList)) // { // List<EnvironmentalInterestSummaryDataType> envIntSummList = new List<EnvironmentalInterestSummaryDataType>(facility.EnvironmentalInterestList.Length); // foreach (EnvironmentalInterestDataType envInt in facility.EnvironmentalInterestList) // { // EnvironmentalInterestSummaryDataType envIntSumm = new EnvironmentalInterestSummaryDataType(); // envIntSumm.DataSource = envInt.DataSource; // envIntSumm.EnvironmentalInterestIdentifier = envInt.EnvironmentalInterestIdentifier; // envIntSumm.EnvironmentalInterestTypeText = envInt.EnvironmentalInterestTypeText; // envIntSumm.EnvironmentalInterestURLText = envInt.EnvironmentalInterestURLText; // envIntSummList.Add(envIntSumm); // } // facilitySummary.EnvironmentalInterestSummaryList = envIntSummList.ToArray(); // } // rtnList.Add(facilitySummary); // } // facilityInterest.FacilityInterestSummaryList = rtnList.ToArray(); //} //return facilityInterest; }