public static Arena.Core.Attribute GetPcoAttribute(AttributeGroup attributeGroup, string attributeName, DataType attributeType) { Arena.Core.Attribute pcoAttribute = attributeGroup.Attributes.FindByName(attributeName); if (pcoAttribute == null || pcoAttribute.AttributeId == -1) { Arena.DataLayer.Organization.OrganizationData oData = new Arena.DataLayer.Organization.OrganizationData(); string sql = string.Format( "SELECT ISNULL(MAX(attribute_order),-1) FROM core_attribute WHERE attribute_group_id = {0}", attributeGroup.AttributeGroupId.ToString()); int groupOrder = (int)oData.ExecuteScalar(sql); Guid attributeGuid = Guid.NewGuid(); sql = string.Format( "insert into core_attribute (guid, attribute_group_id, attribute_name, attribute_type, attribute_order) values ('{0}', {1}, '{2}', '{3}', (({4})+2))", attributeGuid.ToString(), attributeGroup.AttributeGroupId.ToString(), attributeName, Enum.Format(typeof(DataType), attributeType, "D"), groupOrder.ToString()); oData.ExecuteNonQuery(sql); pcoAttribute = new Arena.Core.Attribute(attributeGuid); attributeGroup.Attributes.Add(pcoAttribute); } return(pcoAttribute); }
public static AttributeGroup GetPcoAttributeGroup(int organizationId, Lookup pcoAccount) { if (pcoAccount.Qualifier2.Trim() == string.Empty) { pcoAccount.Qualifier2 = Guid.NewGuid().ToString(); pcoAccount.Save(); } Guid groupGuid = new Guid(pcoAccount.Qualifier2); AttributeGroup pcoAttributeGroup = new AttributeGroup(groupGuid); if (pcoAttributeGroup.AttributeGroupId == -1) { Arena.DataLayer.Organization.OrganizationData oData = new Arena.DataLayer.Organization.OrganizationData(); string sql = "SELECT ISNULL(MAX(group_order),-1) FROM core_attribute_group"; int groupOrder = (int)oData.ExecuteScalar(sql); sql = string.Format( "insert into core_attribute_group (guid, organization_id, group_name, group_order, display_location) values ('{0}', {1}, 'PCO - {2}', (({3})+2), 0)", groupGuid.ToString(), organizationId.ToString(), pcoAccount.Value, groupOrder.ToString()); oData.ExecuteNonQuery(sql); pcoAttributeGroup = new AttributeGroup(groupGuid); } GetPcoAttribute(pcoAttributeGroup, "PCO_Last_Sync", DataType.Document); GetPcoAttribute(pcoAttributeGroup, "PCO_Last_Sync_Arena", DataType.Document); GetPcoAttribute(pcoAttributeGroup, "PCO_ID", DataType.Int); GetPcoAttribute(pcoAttributeGroup, "PCO_Password", DataType.String); return(pcoAttributeGroup); }