Ejemplo n.º 1
0
        public void addItem(HubSpotMapItem item)
        {
            if (item == null)
            {
                //Throw exception or return. One of the two
            }

            if (items == null)
            {
                this.items = new Hashtable();
            }

            items.Add(UCollection.getCollectionKey(item.CRMFieldName), item);
        }
Ejemplo n.º 2
0
        //***** MHM Contacts – Added *****//
        private DataRow getHubSpotMappingRow(string table, HubSpotMapItem item)
        {
            DataRow dRow = null;
            SqlConnection connection = new SqlConnection(ConnectionString);
            DataSet ds = new DataSet();
            USQLServer.openConnection(connection);

            if (table.ToUpper().Contains("HUBSPOT"))
                table = "HUBSPOT";

            string query = "";

            switch (AppGlobal.getDatabaseVersion(UConfig.getAppConfigValue("DatabaseVersion", false)))
            {
                case DatabaseVersion.SQL2000:
                    query += "SELECT * FROM HUBSPOT_MAPPING WHERE CRM_TABLENAME='" + table + "' and CRM_FIELDNAME='" + item.CRMFieldName + "'";
                    break;
                default:
                    query += "SELECT * FROM HUBSPOT_MAPPING WHERE CRM_TABLENAME='" + table + "' and CRM_FIELDNAME='" + item.CRMFieldName + "'";
                    break;
            }

            SqlCommand cmd = new SqlCommand(query, connection);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            adapter.Fill(ds);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dRow = ds.Tables[0].Rows[i];
            }

            adapter.Dispose();
            USQLServer.closeConnection(connection);
            connection.Dispose();

            return dRow;
        }
Ejemplo n.º 3
0
        //***** MHM Contacts *************//
        private void loadLeadDataMaps()
        {
            //Could modify to accommodate SQL 2000 if needed but for now 2005 and above

            Hashtable tempItems = new Hashtable();
            SqlConnection connection = new SqlConnection(ConnectionString);

            DataSet ds = new DataSet();

            USQLServer.openConnection(connection);

            string query = "";

            switch (AppGlobal.getDatabaseVersion(UConfig.getAppConfigValue("DatabaseVersion", false)))
            {
                case DatabaseVersion.SQL2000:
                    query += "SELECT " +
                                    "T.NAME AS TABLE_NAME, " +
                                    "C.NAME AS COLUMN_NAME, " +
                                    "TYPES.NAME AS FIELD_TYPE, " +
                                    "C.LENGTH AS MAX_LENGTH, " +
                                    "C.ISNULLABLE AS IS_NULLABLE " +
                                "FROM " +
                                    "SYSOBJECTS T INNER JOIN SYSCOLUMNS C ON T.ID = C.ID INNER JOIN " +
                                    "SYSTYPES TYPES ON C.XTYPE = TYPES.XUSERTYPE " +
                                "WHERE " +
                                    "T.NAME IN ('LEAD','LEAD_ADDRESS','LEAD_HUBSPOT', 'LEAD_CONVERSION_EVENT', 'ACCOUNT_HUBSPOT', 'ACCOUNT_CONVERSION_EVENT','CONTACT_HUBSPOT', 'CONTACT_CONVERSION_EVENT') " +
                                "ORDER BY " +
                                    "T.NAME, " +
                                    "C.NAME";

                    break;
                default:
                    query += "SELECT " +
                                    "T.NAME AS TABLE_NAME, " +
                                    "C.NAME AS COLUMN_NAME, " +
                                    "TYPES.NAME AS FIELD_TYPE, " +
                                    "C.MAX_LENGTH AS MAX_LENGTH, " +
                                    "C.IS_NULLABLE AS IS_NULLABLE " +
                                "FROM " +
                                    "SYS.TABLES T INNER JOIN SYS.COLUMNS C ON T.OBJECT_ID = C.OBJECT_ID INNER JOIN " +
                                    "SYS.TYPES TYPES ON C.USER_TYPE_ID = TYPES.USER_TYPE_ID " +
                                "WHERE " +
                                    "T.NAME IN ('LEAD','LEAD_ADDRESS','LEAD_HUBSPOT', 'LEAD_CONVERSION_EVENT', 'ACCOUNT_HUBSPOT', 'ACCOUNT_CONVERSION_EVENT','CONTACT_HUBSPOT', 'CONTACT_CONVERSION_EVENT') " +
                                "ORDER BY " +
                                    "T.NAME, " +
                                    "C.NAME";
                    break;
            }

            SqlCommand cmd = new SqlCommand(query, connection);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            ULogging.writeToDebugLog(AppGlobal.getAppLogger(), "Data Map Items: " + cmd.CommandText);

            adapter.Fill(ds);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DataRow row = ds.Tables[0].Rows[i];

                string tableName = row["TABLE_NAME"].ToString();
                string crmFieldName = row["COLUMN_NAME"].ToString();
                int maxWidth = int.Parse(row["MAX_LENGTH"].ToString());

                HubSpotMapItem item = new HubSpotMapItem(null, crmFieldName, maxWidth);
                //***** MHM Contacts – Added *****//
                item.CrmDataType = row["FIELD_TYPE"].ToString();
                //***** MHM Contacts *************//

                tempItems.Add(UCollection.getCollectionKey(tableName + "|" + crmFieldName), item);
            }

            adapter.Dispose();

            USQLServer.closeConnection(connection);

            connection.Dispose();

             //***** MHM Contacts – Added *****//
            if (UConfig.getAppConfigValue("HubSpotContact", false) != "true")
            {
                //***** MHM Contacts *************//
                //Load HubSpot map for Saleslogix and add matching hubspot field
                XmlTextReader reader = new XmlTextReader("SalesLogixHubSpotFieldMap.xml");

                while (reader.Read())
                {
                    string key = UCollection.getCollectionKey(reader.GetAttribute("crmtablename") + "|" + reader.GetAttribute("crmfieldname"));

                    HubSpotMapItem item = (HubSpotMapItem)tempItems[key];

                    if (item != null)
                    {
                        item.HubSpotFieldName = reader.GetAttribute("hubspotfieldname");
                    }
                }
            //***** MHM Contacts – Added *****//
            }
            //***** MHM Contacts *************//

            //Put temp map items in the correct map
            HubSpotMap leadMap = new HubSpotMap(UCollection.getCollectionKey("Lead"));
            HubSpotMap leadAddressMap = new HubSpotMap(UCollection.getCollectionKey("Lead_Address"));
            HubSpotMap leadHubSpotMap = new HubSpotMap(UCollection.getCollectionKey("Lead_HubSpot"));
            HubSpotMap leadConversionEventMap = new HubSpotMap(UCollection.getCollectionKey("Lead_Conversion_Event"));
            HubSpotMap accountHubSpotMap = new HubSpotMap(UCollection.getCollectionKey("Account_HubSpot"));
            HubSpotMap accountConversionEventMap = new HubSpotMap(UCollection.getCollectionKey("Account_Conversion_Event"));
            HubSpotMap contactHubSpotMap = new HubSpotMap(UCollection.getCollectionKey("Contact_HubSpot"));
            HubSpotMap contactConversionEventMap = new HubSpotMap(UCollection.getCollectionKey("Contact_Conversion_Event"));

            foreach (string key in tempItems.Keys)
            {
                string[] values = key.Split(new string[]{"|"}, StringSplitOptions.None);
                string table = values[0];
                HubSpotMapItem item = (HubSpotMapItem) tempItems[key];

                //***** MHM Contacts – Added *****//
                if (UConfig.getAppConfigValue("HubSpotContact", false) == "true")
                {
                    DataRow dRow = getHubSpotMappingRow(table, item);
                    if (dRow != null)
                    {
                        item.HubSpotFieldName = dRow["HUBSPOT_NAME"].ToString();
                        item.HubSpotDateType = dRow["HUBSPOT_TYPE"].ToString();
                        if (string.IsNullOrEmpty(dRow["CRM_UPDATE"].ToString()))
                            item.CrmUpdate = false;
                        else
                            item.CrmUpdate = Convert.ToBoolean(dRow["CRM_UPDATE"].ToString());
                    }
                }
                //***** MHM Contacts *************//

                if (table.Equals("Lead", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadMap.addItem(item);
                }
                else if (table.Equals("Lead_Address", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadAddressMap.addItem(item);
                }
                else if (table.Equals("Lead_Hubspot", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadHubSpotMap.addItem(item);
                }
                else if (table.Equals("Lead_Conversion_Event", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadConversionEventMap.addItem(item);
                }
                else if (table.Equals("Account_Hubspot", StringComparison.OrdinalIgnoreCase) == true)
                {
                    accountHubSpotMap.addItem(item);
                }
                else if (table.Equals("Account_Conversion_Event", StringComparison.OrdinalIgnoreCase) == true)
                {
                    accountConversionEventMap.addItem(item);
                }
                else if (table.Equals("Contact_Hubspot", StringComparison.OrdinalIgnoreCase) == true)
                {
                    contactHubSpotMap.addItem(item);
                }
                else if (table.Equals("Contact_Conversion_Event", StringComparison.OrdinalIgnoreCase) == true)
                {
                    contactConversionEventMap.addItem(item);
                }
            }

            addMap(leadMap);
            addMap(leadAddressMap);
            addMap(leadHubSpotMap);
            addMap(leadConversionEventMap);
            addMap(accountHubSpotMap);
            addMap(accountConversionEventMap);
            addMap(contactHubSpotMap);
            addMap(contactConversionEventMap);
        }
Ejemplo n.º 4
0
        //***** MHM Contacts *************//
        private void loadLeadDataMaps()
        {
            login();

            Hashtable tempItems = new Hashtable();
            Dictionary<string, crmfield[]> fieldsDictionary = new Dictionary<string, crmfield[]>();

            fieldsDictionary.Add("Lead", leadResult.records);
            fieldsDictionary.Add("LeadConversionEvent", leadConversionEventResult.records);

            foreach (string key in fieldsDictionary.Keys)
            {
                crmfield[] fields = fieldsDictionary[key];

                foreach (crmfield field in fields)
                {
                    //ULogging.writeToDebugLog(AppGlobal.getAppLogger(), "Data Map Items: " + cmd.CommandText);

                    //string tableName = row["TABLE_NAME"].ToString();
                    //string crmFieldName = row["COLUMN_NAME"].ToString();
                    //int maxWidth = int.Parse(row["MAX_LENGTH"].ToString());

                    string tableName = key;
                    string crmFieldName = field.name;
                    int maxWidth = field.length;

                    HubSpotMapItem item = new HubSpotMapItem(null, crmFieldName, maxWidth);
                    //***** MHM Contacts – Added *****//
                    item.CrmDataType = field.type;
                    //***** MHM Contacts *************//

                    tempItems.Add(UCollection.getCollectionKey(tableName + "|" + crmFieldName), item);
                }
            }

            //***** MHM Contacts – Added *****//
            if (UConfig.getAppConfigValue("HubSpotContact", false) != "true")
            {
            //***** MHM Contacts *************//
                //Load HubSpot map for Saleslogix and add matching hubspot field
                XmlTextReader reader = new XmlTextReader("SageCRMHubSpotFieldMap.xml");

                while (reader.Read())
                {
                    string key = UCollection.getCollectionKey(reader.GetAttribute("crmtablename") + "|" + reader.GetAttribute("crmfieldname"));

                    HubSpotMapItem item = (HubSpotMapItem)tempItems[key];

                    if (item != null)
                    {
                        item.HubSpotFieldName = reader.GetAttribute("hubspotfieldname");
                    }
                }
            //***** MHM Contacts – Added *****//
            }
            //***** MHM Contacts *************//

            //Put temp map items in the correct map
            HubSpotMap leadMap = new HubSpotMap(UCollection.getCollectionKey("Lead"));
            HubSpotMap leadConversionEventMap = new HubSpotMap(UCollection.getCollectionKey("LeadConversionEvent"));

            foreach (string key in tempItems.Keys)
            {
                string[] values = key.Split(new string[] { "|" }, StringSplitOptions.None);
                string table = values[0];
                HubSpotMapItem item = (HubSpotMapItem)tempItems[key];

                //***** MHM Contacts – Added *****//
                if (UConfig.getAppConfigValue("HubSpotContact", false) == "true" &&
                    table.Equals("Lead", StringComparison.OrdinalIgnoreCase))
                {
                    DataRow dRow = getHubSpotMappingRow(table, item);
                    if (dRow != null)
                    {
                        item.HubSpotFieldName = dRow["HUBSPOT_NAME"].ToString();
                        item.HubSpotDateType = dRow["HUBSPOT_TYPE"].ToString();
                        if (string.IsNullOrEmpty(dRow["CRM_UPDATE"].ToString()))
                            item.CrmUpdate = false;
                        else
                            item.CrmUpdate = Convert.ToBoolean(dRow["CRM_UPDATE"].ToString());
                    }
                }
                //***** MHM Contacts *************//

                if (table.Equals("Lead", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadMap.addItem(item);
                }
                else if (table.Equals("LeadConversionEvent", StringComparison.OrdinalIgnoreCase) == true)
                {
                    leadConversionEventMap.addItem(item);
                }
            }

            addMap(leadMap);
            addMap(leadConversionEventMap);
        }
Ejemplo n.º 5
0
 private string getTrimValue(HubSpotMapItem item, string strValue)
 {
     if (!string.IsNullOrEmpty(strValue) &&
         (item.CrmDataType.ToUpper().Contains("STRING") ||
         item.CrmDataType.ToUpper().Contains("NCHAR") ||
         item.CrmDataType.ToUpper().Contains("NVARCHAR")) &&
         item.MaxLength > 0 &&
         strValue.Length > item.MaxLength)
         return strValue.Substring(0, item.MaxLength);
     else
         return strValue;
 }
Ejemplo n.º 6
0
        private string getTrimValue(HubSpotMapItem item, HubSpotLead aContactRecord)
        {
            string strValue = "";

            if (!string.IsNullOrEmpty(item.HubSpotFieldName))
                strValue = aContactRecord.ContactProperties.getContactPropertyStringValue(item.HubSpotFieldName);

            if (!string.IsNullOrEmpty(strValue) &&
                (item.CrmDataType.ToUpper().Contains("STRING") ||
                item.CrmDataType.ToUpper().Contains("NCHAR") ||
                item.CrmDataType.ToUpper().Contains("NVARCHAR")) &&
                item.MaxLength > 0 &&
                strValue.Length > item.MaxLength)
                return strValue.Substring(0, item.MaxLength);
            else
                return strValue;
        }
Ejemplo n.º 7
0
 private void setALeadValue(HubSpotMapItem item, HubSpotLead aRecord)
 {
     if (item.CrmDataType.Equals("datetime", StringComparison.OrdinalIgnoreCase))
         NativeMethods.GMW_NV_SetValue(pGMNV, item.CRMFieldName, SLX_Data.dateTimeToISODateString(aRecord.getDateTimeValueInLocalTime(item.HubSpotFieldName)));
     else if (item.CrmDataType.Equals("int", StringComparison.OrdinalIgnoreCase) |
              item.CrmDataType.Equals("smallint", StringComparison.OrdinalIgnoreCase))
         return; //NativeMethods.GMW_NV_SetValue(pGMNV, item.CRMFieldName, 3);
     else if (item.CrmDataType.Equals("float", StringComparison.OrdinalIgnoreCase))
         return; //NativeMethods.GMW_NV_SetValue(pGMNV, item.CRMFieldName, Convert.ToString(leadRecord.getDecimalValue(item.HubSpotFieldName)));
     else if (!string.IsNullOrEmpty(aRecord.getStringValue(item.HubSpotFieldName)))
     {
         NativeMethods.GMW_NV_SetValue(pGMNV, item.CRMFieldName, getTrimValue(aRecord.getStringValue(item.HubSpotFieldName), item.MaxLength, item.CrmDataType));
     }
 }