public CustomEntityDescriptor GetCustomEntityDescriptor(string entityName, int parentEntities)
        {
            CustomEntityDescriptor descriptor = this.ActFramework.CustomEntities.GetCustomEntityDescriptor(entityName);

            if (descriptor != null)
            {
                Logging.Log("GetCustomEntityDescriptor", descriptor.Name + ", " + descriptor.DisplayName + ", " + descriptor.ParentEntity);
                return(descriptor);
            }

            this.ActFramework.Database.LockDatabase(DatabaseLockReason.SchemaChanges);
            try
            {
                if (parentEntities <= 0)
                {
                    descriptor = this.ActFramework.CustomEntities.CreateCustomEntity(entityName, entityName, false, "Automatische Wiedervorlage und Aktionen (Matrix)");
                }
                else
                {
                    descriptor = this.ActFramework.CustomEntities.CreateCustomSubEntity(entityName, entityName, (ParentEntity)parentEntities, false, "Automatische Wiedervorlage und Aktionen (Matrix)");
                }
            }
            finally
            {
                this.ActFramework.Database.UnlockDatabase();
            }
            Logging.Log("GetCustomEntityDescriptor", descriptor.Name + ", " + descriptor.DisplayName + descriptor.ParentEntity);
            return(descriptor);
        }
        public FieldDescriptor GetField(CustomEntityDescriptor descriptor, string alias, FieldDataType fieldType)
        {
            string name = "IBOL_" + alias;

            FieldDescriptorCollection fieldDescriptors = this.ActFramework.Fields.GetFields(descriptor);
            //foreach (FieldDescriptor des in fieldDescriptors)
            //{
            //	Logging.Log("GetFieldDescriptor", des.Name + ", " + des.ColumnName + ", " + des.Alias + ", " + des.EntityName + ", " + des.TableName);
            //}

            FieldDescriptor field = fieldDescriptors.Find(name);

            if (field != null)
            {
                return(field);
            }

            field = new FieldDescriptor(name, alias, descriptor, fieldType);             // name will be changed, the alias not

            this.ActFramework.Database.LockDatabase(DatabaseLockReason.SchemaChanges);
            try
            {
                this.ActFramework.Fields.Save(field);
            }
            finally
            {
                this.ActFramework.Database.UnlockDatabase();
            }
            return(field);
        }
        public void GetCustomEntityDescriptorTest()
        {
            using (ActFramework framework = new ActFramework())
            {
                framework.LogOn(Settings.Default.userName, Settings.Default.password, Settings.Default.databaseHost, Settings.Default.databaseName);

                IbolManagerBase        ibolManagerBase = new IbolManagerBase(framework);
                CustomEntityDescriptor descriptor      = ibolManagerBase.GetCustomEntityDescriptor(IbolTests.IbolTableName, (int)ParentEntity.Contacts);
                Assert.IsNotNull(descriptor, "descriptor is null");
            }
        }
        public void GetFieldTest()
        {
            using (ActFramework framework = new ActFramework())
            {
                framework.LogOn(Settings.Default.userName, Settings.Default.password, Settings.Default.databaseHost, Settings.Default.databaseName);

                IbolManagerBase        ibolManagerBase = new IbolManagerBase(framework);
                CustomEntityDescriptor descriptor      = ibolManagerBase.GetCustomEntityDescriptor(IbolTests.IbolTableName, (int)ParentEntity.Contacts);
                Assert.IsNotNull(descriptor, "CustomEntityDescriptor is null");

                string          alias     = "GetFieldTest";
                FieldDataType   fieldType = FieldDataType.Character;
                FieldDescriptor des       = ibolManagerBase.GetField(descriptor, alias, fieldType);
                Assert.IsNotNull(des, "FieldDescriptor is null");
                Logging.Log("InitializeColumns", des.Name + ", " + des.ColumnName + ", " + des.Alias + ", " + des.TableName);
            }
        }
        public void DeleteCustomEntity(string entityName)
        {
            CustomEntityDescriptor descriptor = this.ActFramework.CustomEntities.GetCustomEntityDescriptor(entityName);

            if (descriptor == null)
            {
                Logging.Log("DeleteCustomEntity", entityName);
                return;
            }

            this.ActFramework.Database.LockDatabase(DatabaseLockReason.SchemaChanges);
            try
            {
                this.ActFramework.CustomEntities.DeleteCustomEntity(descriptor);
            }
            finally
            {
                this.ActFramework.Database.UnlockDatabase();
            }
            Logging.Log("DeleteCustomEntity", entityName);
            return;
        }