Beispiel #1
0
        public TemplateNodeInfo Instantiate(ConnectionData connection, DataRow row, TemplateNodeQueryInfo replicationSourceQuery, TemplateNodeInfo parent)
        {
            Debug.Assert(!IsInstance);
            Debug.Assert(NeedDataRowToBeInstantiated);

            var result = (TemplateNodeInfo)MemberwiseClone();

            result.Childs = new List <TemplateNodeInfo>();

            result.Template = this;

            result.Attributes = new NodeAttirbutes(result, row);
            result.Connection = connection;

            result.ReplicationSourceQuery = replicationSourceQuery;

            result.Queries           = Queries.Select(q => q.Clone()).ToList();
            result.ConnectionQueries = ConnectionQueries.Select(q => q.Clone()).ToList();
            result.GroupQueries      = GroupQueries.Select(q => q.Clone()).ToList();

            result.Parent = parent;
            result.Id     = null;
            result.Name   = Name + result.Id;

            result.OnAttributesChanged();

            return(result);
        }
Beispiel #2
0
        public TemplateNodeInfo Instantiate(ConnectionData connection, string defaultDatabaseAttribute, TemplateNodeInfo parent)
        {
            Debug.Assert(!IsInstance);

            TemplateNodeInfo result = (TemplateNodeInfo)MemberwiseClone();

            result.Template                      = this;
            result.Attributes                    = new NodeAttirbutes(result);
            result.Childs                        = new List <TemplateNodeInfo>();
            result.Connection                    = connection;
            result.ReplicationSourceQuery        = null;
            result._defaultDatabaseAttributeName = defaultDatabaseAttribute;

            result.Queries           = Queries.Select(q => q.Clone()).ToList();
            result.ConnectionQueries = ConnectionQueries.Select(q => q.Clone()).ToList();
            result.GroupQueries      = GroupQueries.Select(q => q.Clone()).ToList();

            result.Parent = parent;

            return(result);
        }