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);
        }
Example #3
0
        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;
        }
Example #5
0
        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));
        }