Exemplo n.º 1
0
        public List<Sub_Region__c> RefreshHierarchy( bool bDisplayOnly = true )
        {
            List<Division__c> objDivisions = new List<Division__c>();

            // read divisions from CSV file
            string strFileName = string.Concat( strAppPath, "CSV_Divisions.csv" );
            objDivisions.ReadFile<Division__c>( strFileName, "Name,Division_Description__c" );

            UpsertResult[] objDivisionResults = null;
            if( !bDisplayOnly )
                objDivisionResults = objAPI.Upsert( "Name", objDivisions.ToArray<sObject>() );
            //ReportStatus(objDivisionResults);

            // create CSV file / set the Ids in the list of facilities
            Company2SFUtils.SetIdsReportErrors( objDivisions, objDivisionResults, tbStatus );

            List<Region__c> objRegions = new List<Region__c>();

            // read regions from CSV file
            strFileName = string.Concat( strAppPath, "CSV_Regions.csv" );
            objRegions.ReadFile<Region__c>( strFileName, "Name,Region_Description__c,Division_Code__c" );

            // set the relationship between Regions and Divisions
            foreach( Region__c objReg in objRegions )
            {
                // convert division code into lookup id
                string strDivisionCode = objReg.Division_Code__c;
                string strDivisionId = "";
                Division__c objFoundDivision = objDivisions.FirstOrDefault( i => i.Name == strDivisionCode );
                if( objFoundDivision != null )
                    strDivisionId = objFoundDivision.Id;
                objReg.Division_Code__c = strDivisionId;
            }

            UpsertResult[] objRegionResults = null;
            if( !bDisplayOnly )
                objRegionResults = objAPI.Upsert( "Name", objRegions.ToArray<sObject>() );
            //ReportStatus(objRegionResults);

            // create CSV file / set the Ids in the list of facilities
            Company2SFUtils.SetIdsReportErrors( objRegions, objRegionResults, tbStatus );

            List<Sub_Region__c> objSub_Regions = new List<Sub_Region__c>();

            List<EMSC2SF.User> objExistingUsers = Company2SFUtils.GetSFUserList( objAPI, lblError );

            // read regions from CSV file
            strFileName = string.Concat( strAppPath, "CSV_SubRegions.csv" );
            objSub_Regions.ReadFile<Sub_Region__c>( strFileName, "Name,Sub_Region_Description__c,Region_Code__c,OwnerId" );

            foreach( Sub_Region__c objSubReg in objSub_Regions )
            {
                // convert Owner name into User id
                string strOwner = objSubReg.OwnerId;
                User objFound = objExistingUsers.FirstOrDefault( i => i.Name.Equals( strOwner ) );
                if( objFound != null )
                    objSubReg.Recruiting_Manager__c = objFound.Id;
                objSubReg.OwnerId = "";

                // convert region code into lookup id
                string strRegionCode = objSubReg.Region_Code__c;
                string strRegionId = "";
                Region__c objFoundRegion = objRegions.FirstOrDefault( i => i.Name == strRegionCode );
                if( objFoundRegion != null )
                    strRegionId = objFoundRegion.Id;
                objSubReg.Region_Code__c = strRegionId;

                objSubReg.SubRegionCode__c = objSubReg.Name;
            }

            UpsertResult[] objSub_RegionResults = null;
            if( !bDisplayOnly )
                objSub_RegionResults = objAPI.Upsert( "Name", objSub_Regions.ToArray<sObject>() );
            //ReportStatus(objSub_RegionResults);

            // create CSV file / set the Ids in the list of facilities
            Company2SFUtils.SetIdsReportErrors( objSub_Regions, objSub_RegionResults, tbStatus );

            return objSub_Regions;
        }
Exemplo n.º 2
0
        public List<Credential_Agency__c> RefreshAgencies( List<Contact> objProviders = null, bool bDisplayOnly = true )
        {
            DataTable objDT = null;
            if( objProviders != null )
                objDT = objDB.GetDataTableFromSQLFile( "SQLAgency.txt", Company2SFUtils.CreateProviderScript( objProviders ) );
            else
                objDT = objDB.GetDataTableFromSQLFile( "SQLAllAgencies.txt" );
            tbStatus.Text = string.Concat( tbStatus.Text, "\r\n", objDT.Rows.Count, " agency rows retrieved.\r\n" );

            if( !objDB.ErrorMessage.Equals( "" ) )
            {
                tbStatus.Text = string.Concat( tbStatus.Text, "\r\n", objDB.ErrorMessage );
                return null;
            }

            // add copy of main column to the table to help with duplicate detection
            //CreateMatchColumn( objDT, "OriginalName", true );

            Company2SFUtils.FlagDupesByAddressCityName( objDT );

            // add agencies not in Company
            List<Credential_Agency__c> objAgencies = new List<Credential_Agency__c>( objDT.Rows.Count );
            string strFileName = string.Concat( strAppPath, "CSV_AgenciesNotInCompanyApp.csv" );
            objAgencies.ReadFile( strFileName, "Code__c,Name,State_Licensing_Agency__c,Address1__c,Address2__c,City__c,State__c,"
            + "Zip__c,Phone__c,Ext__c,Fax__c,Contact__c,Title__c,Salutation__c,Credential_Type__c,Company_Agency_Match__c"
                            , true );

            // load agencies from datatable to agency list
            foreach( DataRow objDR in objDT.Rows )
            {
                //// detect duplicates and flag them in the DuplicateOfCode column
                //FlagDuplicates( objDR );

                // skip the duplicate institutions
                if( !objDR[ "DuplicateOfCode" ].IsNullOrBlank() )
                    continue;

                // copy all datatable columns to credential agency object attributes
                Credential_Agency__c objNewAgency = objDR.ConvertTo<Credential_Agency__c>();

                // add metaphone values
                string strName = objDR[ "OriginalName" ].ToString();
                objNewAgency.Metaphone_Name__c = strName.ToNormalizedMetaphone();
                if( objNewAgency.Address1__c.HasNumbers() )
                    objNewAgency.Metaphone_Address__c = objNewAgency.Address1__c.ToNormalizedMetaphone().Left( 50 );
                else
                    objNewAgency.Metaphone_Address__c = objNewAgency.Address2__c.ToNormalizedMetaphone().Left( 50 );
                objNewAgency.Metaphone_City__c = objNewAgency.City__c.ToNormalizedMetaphone();

                // set the name after duplication removal
                objNewAgency.Name = objDR[ "ModifiedName" ].IsNullOrBlank() ?
                                        objDR[ "OriginalName" ].ToString() : objDR[ "ModifiedName" ].ToString();

                objAgencies.Add( objNewAgency );
            }

            UpsertResult[] objResults = null;
            if( !bDisplayOnly )
                objResults = objAPI.Upsert( "Company_Agency_Match__c", objAgencies.ToArray<sObject>() );
            //ReportStatus(objResults);

            // create CSV file / set the Ids in the list of candidates
            Company2SFUtils.SetIdsReportErrors( objAgencies, objResults, tbStatus );

            //ShowData(objAgencies);

            return objAgencies;
        }