示例#1
0
        /// <summary>
        /// Create a MetaConnection in the source
        /// </summary>
        public MetaConnection AddConnection()
        {
            MetaConnection result = MetaConnection.Create(this);

            result.ConnectionString = DefaultConnectionString;

            result.Name = Helper.GetUniqueName(result.Name, (from i in Connections select i.Name).ToList());
            Connections.Add(result);
            return(result);
        }
示例#2
0
 /// <summary>
 /// Add a default MetaConnection to the source
 /// </summary>
 public void AddDefaultConnection(Repository repository)
 {
     if (Connections.Count == 0)
     {
         //Add default connection
         MetaConnection connection = MetaConnection.Create(this);
         connection.ConnectionString = repository.Configuration.DefaultConnectionString;
         Connections.Add(connection);
         ConnectionGUID = connection.GUID;
     }
 }
示例#3
0
        /// <summary>
        /// Create a MetaConnection in the source
        /// </summary>
        public MetaConnection AddConnection()
        {
            MetaConnection result = MetaConnection.Create(this);

            result.ConnectionString = Repository.Configuration.DefaultConnectionString;
            result.DatabaseType     = ConnectionStringEditor.GetDatabaseType(result.ConnectionString);

            result.Name = Helper.GetUniqueName(result.Name, (from i in Connections select i.Name).ToList());
            Connections.Add(result);
            return(result);
        }
示例#4
0
        /// <summary>
        /// Load the available MetaSources defined in the repository
        /// </summary>
        public void LoadRepositoryMetaSources(Repository repository)
        {
            if (Loaded)
            {
                return;
            }

            foreach (var connection in Connections)
            {
                connection.IsEditable = true;
            }
            foreach (var table in MetaData.Tables)
            {
                table.IsEditable = true;
            }
            foreach (var link in MetaData.TableLinks)
            {
                link.IsEditable = true;
            }
            foreach (var join in MetaData.Joins)
            {
                join.IsEditable = true;
            }
            foreach (var itemEnum in MetaData.Enums)
            {
                itemEnum.IsEditable = true;
            }

            if (!string.IsNullOrEmpty(MetaSourceGUID))
            {
                MetaSource source = repository.Sources.FirstOrDefault(i => i.GUID == MetaSourceGUID);
                if (source != null)
                {
                    IsDefault       = source.IsDefault;
                    IsNoSQL         = source.IsNoSQL;
                    InitScript      = source.InitScript;
                    _metaSourceName = source.Name;
                    foreach (var item in source.Connections)
                    {
                        item.Source     = source;
                        item.IsEditable = false;
                        Connections.Add(item);
                    }
                    foreach (var item in source.MetaData.Tables)
                    {
                        item.Source     = source;
                        item.IsEditable = false;
                        MetaData.Tables.Add(item);
                    }
                    foreach (var item in source.MetaData.TableLinks)
                    {
                        item.IsEditable = false;
                        MetaData.TableLinks.Add(item);
                    }
                    foreach (var item in source.MetaData.Joins)
                    {
                        item.Source     = source;
                        item.IsEditable = false;
                        MetaData.Joins.Add(item);
                    }
                    foreach (var item in source.MetaData.Enums)
                    {
                        item.Source     = source;
                        item.IsEditable = false;
                        MetaData.Enums.Add(item);
                    }

                    PreSQL  = source.PreSQL;
                    PostSQL = source.PostSQL;

                    IgnorePrePostError = source.IgnorePrePostError;
                }
                else
                {
                    Report.LoadErrors += string.Format("Unable to find repository source for '{0}' (GUID {1}). Check the data source files in the repository folder.\r\n", Name, MetaSourceGUID);
                }
            }

            if (Connections.Count == 0)
            {
                Connections.Add(MetaConnection.Create(this));
                ConnectionGUID = Connections[0].GUID;
            }

            Loaded = true;
        }