protected virtual FacilityDetailsDataType GetSubmitDocumentData(string transactionId, string docId) { string operation; FacilityDetailsDataType data = GetHeaderDocumentContent <FacilityDetailsDataType>(transactionId, docId, _settingsProvider, _serializationHelper, _compressionHelper, _documentManager, out operation); return(data); }
protected virtual void ProcessSubmitDocument(string transactionId, string docId) { FacilityDetailsDataType data = GetSubmitDocumentData(transactionId, docId); if (CollectionUtils.IsNullOrEmpty(data.FacilityList) && CollectionUtils.IsNullOrEmpty(data.AffiliateList)) { AppendAuditLogEvent("Input submission file with id \"{0}\" does not contain any data", docId.ToString()); return; } AppendAuditLogEvent("Input submission file with id \"{0}\" contains {1} facilities and {2} affiliates.", docId.ToString(), (data.FacilityList == null) ? "0" : data.FacilityList.Length.ToString(), (data.AffiliateList == null) ? "0" : data.AffiliateList.Length.ToString()); AppendAuditLogEvent("Loading facility details data into database ..."); IObjectsToDatabase objectsToDatabase; GetServiceImplementation(out objectsToDatabase); Dictionary <string, int> insertCounts; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromSeconds(_storedProcTimeout))) { AppendAuditLogEvent("Inserting data into database ..."); insertCounts = objectsToDatabase.SaveToDatabase(data, _baseDao); AppendAuditLogEvent("Successfully inserted data into database"); CallPostprocessingStoredProc(data.FacilityDetailsId); AppendAuditLogEvent("Attempting to complete database transaction ..."); scope.Complete(); AppendAuditLogEvent("Successfully completed database transaction"); } AppendAuditLogEvent(GetRowCountsAuditString(insertCounts)); AppendAuditLogEvent("Success, added facility details with primary key: {0}!", data.FacilityDetailsId); }
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; }
internal string Execute(DateTime changeDate, string flowName, string targetXmlPath, ISerializationHelper serializationHelper, ICompressionHelper compressionHelper, IObjectsFromDatabase objectsFromDatabase, IAppendAuditLogEvent appendAuditLogEvent) { appendAuditLogEvent.AppendAuditLogEvent("Querying FACID data ..."); Dictionary <string, DbAppendSelectWhereClause> selectClauses = new Dictionary <string, DbAppendSelectWhereClause>(); string facIdQuery = string.Format("SELECT ST_FAC_IND FROM CHANGED_FACILITIES WHERE IS_DELETED = 0 AND UPPER(FLOW_TYPE) = UPPER('{0}') AND UPDATE_DATE >= '{1}'", flowName, changeDate.ToString("dd-MMM-yyyy").ToUpper()); string whereQuery = string.Format("FAC_SITE_IDEN_VAL IN ({0})", facIdQuery); selectClauses.Add("FACID_FAC", new DbAppendSelectWhereClause(whereQuery, null)); string affiliateTableClause = string.Format( "AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_FAC_FAC_AFFL WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0}) UNION " + "SELECT AFFL_IDEN FROM FACID_ENVR_INTR_FAC_AFFL WHERE ENVR_INTR_ID IN (SELECT ENVR_INTR_ID FROM FACID_ENVR_INTR WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0})))", whereQuery); //string affiliateTableClause = string.Format("(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_FAC_FAC_AFFL WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0}))) OR " + // "(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_ENVR_INTR_FAC_AFFL WHERE ENVR_INTR_ID IN (SELECT ENVR_INTR_ID FROM FACID_ENVR_INTR WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0}))))", // whereQuery); //string affiliateTableClause = string.Format("(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_FAC_FAC_AFFL WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0})))", // whereQuery); //string affiliateTableClause = string.Format("(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_ENVR_INTR_FAC_AFFL WHERE ENVR_INTR_ID IN (SELECT ENVR_INTR_ID FROM FACID_ENVR_INTR WHERE FAC_ID IN (SELECT FAC_ID FROM FACID_FAC WHERE {0}))))", // whereQuery); //string affiliateTableClause = string.Format("(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_FAC_FAC_AFFL WHERE FAC_ID IN ({0}))) OR " + // "(AFFL_IDEN IN (SELECT AFFL_IDEN FROM FACID_ENVR_INTR_FAC_AFFL WHERE ENVR_INTR_ID IN (SELECT ENVR_INTR_ID FROM FACID_ENVR_INTR WHERE FAC_ID IN ({0}))))", // facIdQuery); selectClauses.Add("FACID_AFFL", new DbAppendSelectWhereClause(affiliateTableClause, null)); List <FacilityDetailsDataType> dataList = objectsFromDatabase.LoadFromDatabase <FacilityDetailsDataType>(_baseDao, selectClauses); FacilityDetailsDataType data = FacIdHelper.CombineFacilityDetailsQueryResults(dataList); #if DEBUG { } #endif // DEBUG if (CollectionUtils.IsNullOrEmpty(data.FacilityList)) { appendAuditLogEvent.AppendAuditLogEvent("Did not find any FACID data in database."); return(null); } else { appendAuditLogEvent.AppendAuditLogEvent("Found {0} facilities and {1} affiliates.", data.FacilityList.Length, (data.AffiliateList != null) ? data.AffiliateList.Length : 0); } appendAuditLogEvent.AppendAuditLogEvent( "Serializing transformed results to file (File = {0}).", targetXmlPath); serializationHelper.Serialize(data, targetXmlPath); return(compressionHelper.CompressFile(targetXmlPath)); }