Example #1
0
        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);
        }
Example #2
0
        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);
        }