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; }
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; }