Ejemplo n.º 1
0
        public ArrayList CompareAndUpdateValues()
        {
            if (fieldValues != null)
            {
                ArrayList diffs     = new ArrayList();
                ArrayList newValues = new ArrayList();
                FieldDescriptorCollection fields = ParentTableDescriptor.Fields;
                for (int n = 0; n < fieldValues.Count; n++)
                {
                    object value   = base.GetValue(fields[n]);
                    bool   isEqual = Object.ReferenceEquals(fieldValues[n], value);
                    if (!isEqual && fieldValues[n] != null && value != null)
                    {
                        isEqual |= fieldValues[n].Equals(value);
                    }

                    if (!isEqual)
                    {
                        diffs.Add(n);
                    }

                    newValues.Add(value);
                }
                fieldValues = newValues;
                return(diffs);
            }
            return(null);
        }
Ejemplo n.º 2
0
        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);
        }