Beispiel #1
0
        private void textBoxName_Validating(object sender, CancelEventArgs e)
        {
            errorProvider.Clear();

            if (textBoxName.Text == "")
            {
                errorProvider.SetError(textBoxAlias, "Must Include Name.");
                e.Cancel = true;
                return;
            }

            if (_parent.GetType() != typeof(ArchAngel.Providers.Database.Model.Table))
            {
                return;
            }

            ArchAngel.Providers.Database.Model.Table table = (ArchAngel.Providers.Database.Model.Table)_parent;
            foreach (Index index in table.Indexes)
            {
                if (textBoxName.Text == index.Name && _index != index)
                {
                    errorProvider.SetError(textBoxName, "Name Allready Exists.");
                    e.Cancel = true;
                    return;
                }
            }
        }
Beispiel #2
0
        private void RenameRelatedObjects()
        {
            //TODO:
            return;

            foreach (ScriptObject scriptObject in _scriptObjects)
            {
                foreach (Relationship relationship in scriptObject.Relationships)
                {
                    if (relationship.ForeignScriptObject != _scriptObject)
                    {
                        continue;
                    }

                    if (relationship.GetType() == typeof(OneToOneRelationship) ||
                        relationship.GetType() == typeof(ManyToOneRelationship))
                    {
                        relationship.Alias = _scriptObject.Alias;
                    }

                    if (relationship.GetType() == typeof(OneToManyRelationship) ||
                        relationship.GetType() == typeof(ManyToManyRelationship))
                    {
                        relationship.Alias = _scriptObject.AliasPlural;
                    }
                }
            }

            if (_scriptObject.GetType() != typeof(ArchAngel.Providers.Database.Model.Table))
            {
                return;
            }

            ArchAngel.Providers.Database.Model.Table table = (ArchAngel.Providers.Database.Model.Table)_scriptObject;

            foreach (Index index in table.Indexes)
            {
                if (index.Type == DatabaseConstant.KeyType.Unique)
                {
                    string filterAlias = ArchAngel.Providers.Database.BLL.Helper.GetFilterAlias(index);
                    Filter filter      = ArchAngel.Providers.Database.BLL.Search.GetFilter(table.Filters, index.Name);

                    filter.Alias = filterAlias;
                }
            }

            foreach (Key key in table.Keys)
            {
                if (key.Type == DatabaseConstant.KeyType.Unique ||
                    key.Type == DatabaseConstant.KeyType.Primary ||
                    key.Type == DatabaseConstant.KeyType.Foreign)
                {
                    string filterAlias = ArchAngel.Providers.Database.BLL.Helper.GetFilterAlias(key);
                    Filter filter      = ArchAngel.Providers.Database.BLL.Search.GetFilter(table.Filters, key.Name);

                    filter.Alias = filterAlias;
                }
            }
        }
Beispiel #3
0
        public static Column[] GetUpdateColumns(Table table)
        {
            OneToOneRelationship[] oneToOneRelationships = Script.GetInheritedOneToOneRelationships(table);

            Column[] columns = Script.GetUpdateableColumnsAndInheritedUpdateableColumns(table, oneToOneRelationships, true, false);

            // Remove duplicates for inherited columns
            List<Column> updateColumns = new List<Column>();
            foreach (Column column in columns)
            {
                Column tempColumn = Script.GetColumnByColumnAlias(updateColumns.ToArray(), column.Alias);
                if (tempColumn == null)
                {
                    updateColumns.Add(column);
                }
            }

            return updateColumns.ToArray();
        }
Beispiel #4
0
        public static Table[] GetUpdateTables(Table table, bool reverseOrder)
        {
            List<Table> tables = new List<Table>();
            tables.Add(table);
            OneToOneRelationship[] oneToOneRelationships = GetInheritedOneToOneRelationships(table);

            if (oneToOneRelationships.Length > 0 && ModelTypes.Table.IsInstanceOfType(oneToOneRelationships[0].ForeignRelationship.Parent))
            {
                tables.Add((Table)oneToOneRelationships[0].ForeignRelationship.Parent);
            }

            foreach (Column column in table.Columns)
            {
                if (ModelTypes.Table.IsInstanceOfType(column.Parent))
                {
                    if (!tables.Contains((Table)column.Parent))
                    {
                        tables.Add((Table)column.Parent);
                    }
                }
            }

            if (reverseOrder)
            {
                tables.Reverse();
            }
            return tables.ToArray();
        }
Beispiel #5
0
 public static Table[] GetUpdateTables(Table table)
 {
     return Script.GetUpdateTables(table, false);
 }
        public static void TreeListNodeError(DevExpress.XtraTreeList.GetCustomNodeCellStyleEventArgs e)
        {
            return;

            TreeListNode treeListNode = e.Node;

            if (treeListNode.StateImageIndex == 0)
            {
                return;
            }

            if (ArchAngel.Providers.Database.BLL.Helper.GetBaseType(treeListNode.Tag) == typeof(ScriptBase))
            {
                ScriptBase scriptBase = (ScriptBase)treeListNode.Tag;
                if (scriptBase.Enabled)
                {
                    bool errorNode = false;
                    if (scriptBase.GetType() == typeof(ArchAngel.Providers.Database.Model.Table) ||
                        scriptBase.GetType() == typeof(ArchAngel.Providers.Database.Model.View) ||
                        scriptBase.GetType() == typeof(ArchAngel.Providers.Database.Model.StoredProcedure))
                    {
                        if (CountAlias(Controller.Instance.BllDatabase.EnabledScriptObjects, scriptBase.Alias) > 1)
                        {
                            errorNode = true;
                            //treeListNode.TreeList.SetColumnError(treeListNode.TreeList.Columns[0], "Duplicate alias: More than one item has the same alias. Right-click one of the duplicate nodes to change its name to be unique.");
                        }
                    }

                    if (scriptBase.GetType() == typeof(Column) ||
                        scriptBase.GetType() == typeof(MapColumn))
                    {
                        ScriptObject scriptObject = ((Column)scriptBase).Parent;
                        if (CountAlias(ScriptBLL.GetEnabledColumns(scriptObject.Columns), scriptBase.Alias) > 1)
                        {
                            errorNode = true;
                            //treeListNode.TreeList.SetColumnError(treeListNode.TreeList.Columns[0], "Duplicate alias: More than one column has the same alias. Right-click one of the duplicate columns to change its name to be unique.");
                        }
                    }

                    if (scriptBase.GetType() == typeof(Key))
                    {
                        ArchAngel.Providers.Database.Model.Table table = (ArchAngel.Providers.Database.Model.Table)((Key)scriptBase).Parent;
                        if (CountAlias(ScriptBLL.GetEnabledKeys(table.Keys), scriptBase.Alias) > 1)
                        {
                            errorNode = true;
                            //treeListNode.TreeList.SetColumnError(treeListNode.TreeList.Columns[0], "Duplicate alias: More than one key has the same alias. Right-click one of the duplicate keys to change its name to be unique.");
                        }
                    }

                    if (scriptBase.GetType() == typeof(Filter))
                    {
                        ScriptObject scriptObject = (ScriptObject)((Filter)scriptBase).Parent;
                        if (CountAlias(ScriptBLL.GetEnabledFilters(scriptObject.Filters), scriptBase.Alias) > 1)
                        {
                            errorNode = true;
                            //treeListNode.TreeList.SetColumnError(treeListNode.TreeList.Columns[0], "Duplicate alias: More than one filter has the same alias. Right-click one of the duplicate filters to change its name to be unique.");
                        }
                    }

                    if (scriptBase.GetType() == typeof(OneToOneRelationship) ||
                        scriptBase.GetType() == typeof(OneToManyRelationship) ||
                        scriptBase.GetType() == typeof(ManyToOneRelationship) ||
                        scriptBase.GetType() == typeof(ManyToManyRelationship))
                    {
                        ScriptObject scriptObject = (ScriptObject)((Relationship)scriptBase).Parent;
                        if (CountAlias(ScriptBLL.GetEnabledRelationships(scriptObject.Relationships), scriptBase.Alias) > 1)
                        {
                            errorNode = true;
                            //treeListNode.TreeList.SetColumnError(treeListNode.TreeList.Columns[0], "Duplicate alias: More than one relationship has the same alias. Right-click one of the duplicate relationships to change its name to be unique.");
                        }
                    }

                    if (errorNode)
                    {
                        e.Appearance.ForeColor = Color.Red;
                        // Parents are shown as red also

                        /*TreeListNode parentTreeListNode = treeListNode.ParentNode;
                         * while (parentTreeListNode != null)
                         * {
                         *  //parentTreeListNode.ForeColor = Color.Red;
                         *  parentTreeListNode = parentTreeListNode.ParentNode;
                         * }*/
                    }
                    else
                    {
                        //treeListNode.TreeList.ToolTipController.SetToolTip(treeListNode, "");
                    }
                }
            }

            /*foreach (TreeListNode childTreeListNode in treeListNode.Nodes)
             * {
             *  if (ArchAngel.Providers.Database.BLL.Helper.GetBaseType(childTreeListNode.Tag) == typeof(ScriptBase))
             *  {
             *      ScriptBase scriptBase = (ScriptBase)childTreeListNode.Tag;
             *      if (!scriptBase.Enabled)
             *      {
             *          continue;
             *      }
             *  }
             *
             *  TreeListNodeError(childTreeListNode);
             * }*/
        }
Beispiel #7
0
        public bool Validate(Table table, out string failReason)
        {
            failReason = "";
            /*Don't check items that are not enabled*/

            if (!table.Enabled)
            {
                return true;
            }
            if (!table.IsUserDefined && table.PrimaryKeyColumns.Length == 0)
            {
                failReason = "No primary key exists.";
                return false;
            }
            return true;
        }
Beispiel #8
0
        public bool NameValidate(Table table, out string failReason)
        {
            failReason = "";
            /*Don't check items that are not enabled*/

            if (!table.Enabled)
            {
                return true;
            }
            if (string.IsNullOrEmpty(table.Name))
            {
                failReason = "Name cannot be zero-length.";
                return false;
            }
            if (table.Name.IndexOf(" ") >= 0)
            {
                failReason = "Name cannot have spaces.";
                return false;
            }

            foreach (ScriptObject sibling in table.Database.EnabledScriptObjects)
            {
                if (sibling != this && sibling.Enabled && ArchAngel.Providers.Database.Helper.Script.StringsAreEqual(sibling.Name, Name, false))
                {
                    failReason = "Duplicate name: " + Name;
                    return false;
                }
            }
            return true;
        }
Beispiel #9
0
        public bool AliasPluralValidate(Table table, out string failReason)
        {
            failReason = "";

            /*Don't check items that are not enabled*/
            if (!table.Enabled)
            {
                return true;
            }
            if (string.IsNullOrEmpty(table.AliasPlural))
            {
                failReason = "AliasPlural cannot be zero-length.";
                return false;
            }
            if (table.AliasPlural.IndexOf(" ") >= 0)
            {
                failReason = "AliasPlural cannot have spaces.";
                return false;
            }
            if (ArchAngel.Providers.Database.Helper.Script.StringsAreEqual(table.AliasPlural, table.Alias, false))
            {
                failReason = "AliasPlural must be different to Alias.";
                return false;
            }

            foreach (ScriptObject sibling in table.Database.EnabledScriptObjects)
            {
                if (sibling != this && sibling.Enabled)
                {
                    if (ArchAngel.Providers.Database.Helper.Script.StringsAreEqual(sibling.AliasPlural, AliasPlural, false))
                    {
                        failReason = string.Format("Duplicate AliasPlural: {0}", AliasPlural);
                        return false;
                    }
                    if (ArchAngel.Providers.Database.Helper.Script.StringsAreEqual(sibling.Alias, AliasPlural, false))
                    {
                        failReason = string.Format("Table with same name exists: {0}", sibling.Alias);
                        return false;
                    }
                }
            }
            return true;
        }
Beispiel #10
0
 public virtual string AliasPluralDefault(Table table)
 {
     return ArchAngel.Providers.Database.Helper.Script.GetPlural(table.Alias);
 }
Beispiel #11
0
        public string AliasDefault(Table table)
        {
            string alias = ArchAngel.Providers.Database.Helper.Script.GetSingleWord(table.Name.Trim());
            string aliasLower = alias.ToLower();

            foreach (string prefix in TablePrefixes)
            {
                if (aliasLower.IndexOf(prefix.ToLower()) == 0)
                {
                    alias = alias.Substring(prefix.Length);
                    break;
                }
            }
            return ArchAngel.Providers.Database.Helper.Script.GetSingular(alias).Replace("_", "");
        }