private void CreateTupleDescriptors()
 {
     tupleDescriptor = TupleDescriptor.Create(
         Columns.Select(c => c.ValueType).ToArray(Columns.Count));
     keyTupleDescriptor = TupleDescriptor.Create(
         KeyColumns.Select(c => c.Key.ValueType).ToArray(KeyColumns.Count));
 }
Example #2
0
        /// <summary>
        /// Adds key columns names to the table. The specified columns must exists on the table.
        /// </summary>
        /// <param name="keyColumnsNames"></param>
        /// <returns></returns>
        public TableBuilder WithKeyColumnsNames(params string[] keyColumnsNames)
        {
            foreach (var keyColumnName in keyColumnsNames)
            {
                KeyColumns.Add(keyColumnName);
            }

            return(this);
        }
Example #3
0
 /// <summary>
 /// Adds key columns to the table from the specified type properties.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="filter"></param>
 /// <returns></returns>
 public TableBuilder WithKeyColumnsFromTypeProperties <T>(Func <PropertyInfo, bool> filter)
 {
     foreach (var column in typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(filter).ToSqlColumns())
     {
         Columns[column.Key] = column.Value;
         KeyColumns.Add(column.Key);
     }
     return(this);
 }
        /// <summary>
        /// Populates <see cref="ValueColumns"/> collection by
        /// including all the columns except <see cref="IndexInfo.KeyColumns"/>
        /// into it.
        /// </summary>
        public void PopulateValueColumns()
        {
            var keySet = EnumerableExtensions.ToHashSet(KeyColumns.Select(kc => kc.Value));

            foreach (var column in Parent.Columns.Where(c => !keySet.Contains(c)))
            {
                new ValueColumnRef(this, column);
            }
        }
Example #5
0
 /// <summary>
 /// Adds a key column to the table from the specified type.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="keyColumnName"></param>
 /// <param name="isIdentity"></param>
 /// <returns></returns>
 public TableBuilder WithKeyColumnFromType <T>(string keyColumnName, bool isIdentity = false)
 {
     if (keyColumnName == null)
     {
         throw new ArgumentNullException(nameof(keyColumnName));
     }
     Columns[keyColumnName] = new SqlType(DbTypeMapper.GetDbType(typeof(T)), isIdentity);
     KeyColumns.Add(keyColumnName);
     return(this);
 }
Example #6
0
 public void AssignParameters(DbCommand command, object[] parameterValues)
 {
     for (int i = 0; i < KeyColumns.Count(); i++)
     {
         var parameter = command.CreateParameter();
         parameter.ParameterName = string.Format("@{0}", KeyColumns[i]);
         parameter.Value         = parameterValues[i];
         command.Parameters.Add(parameter);
     }
 }
        /// <inheritdoc/>
        /// <exception cref="ValidationException">Validation error.</exception>
        protected override void ValidateState()
        {
            using (var ea = new ExceptionAggregator()) {
                ea.Execute(base.ValidateState);
                base.ValidateState();

                var tableColumns = Parent.Columns;
                var keys         = KeyColumns.Select(keyRef => keyRef.Value).ToList();
                var values       = ValueColumns.Select(valueRef => valueRef.Value).ToList();
                var all          = keys.Concat(values).ToList();

                if (keys.Count == 0)
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExEmptyKeyColumnsCollection, Path);
                    });
                }
                if (keys.Where(ci => ci.Type.IsNullable).Count() > 0)
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExPrimaryKeyColumnCanNotBeNullable, Path);
                    });
                }

                if (all.Count != tableColumns.Count)
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExInvalidPrimaryKeyStructure, Path);
                    });
                }
                if (all.Zip(tableColumns).Where(p => p.First != p.Second).Any())
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExInvalidPrimaryKeyStructure, Path);
                    });
                }

                ea.Complete();
            }
        }
Example #8
0
 /// <summary>
 /// Builds a table with the builder data.
 /// </summary>
 /// <returns></returns>
 public ITable Build()
 {
     return(new Table(Name, KeyColumns.ToArray(), Columns, Schema, SchemaSynchronized));
 }
        /// <inheritdoc/>
        /// <exception cref="ValidationException">Empty secondary key columns collection.</exception>
        protected override void ValidateState()
        {
            using (var ea = new ExceptionAggregator()) {
                ea.Execute(base.ValidateState);

                // Secondary key columns: empty set, duplicates
                var keyColumns = KeyColumns.Select(valueRef => valueRef.Value).ToList();
                if (keyColumns.Count == 0)
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExEmptyKeyColumnsCollection, Path);
                    });
                }
                foreach (var group in keyColumns
                         .GroupBy(keyColumn => keyColumn)
                         .Where(group => group.Count() > 1))
                {
                    ea.Execute((_column) => {
                        throw new ValidationException(
                            string.Format(Strings.ExMoreThenOneKeyColumnReferenceToColumnX, _column.Name),
                            Path);
                    }, group.Key);
                }

                // Primary key columns
                if (PrimaryKeyColumns.Count != Parent.PrimaryIndex.KeyColumns.Count)
                {
                    ea.Execute(() => {
                        throw new ValidationException(Strings.ExInvalidPrimaryKeyColumnsCollection, Path);
                    });
                }
                for (int i = 0; i < PrimaryKeyColumns.Count; i++)
                {
                    var ref1 = PrimaryKeyColumns[i];
                    var ref2 = Parent.PrimaryIndex.KeyColumns[i];
                    if (ref1.Value != ref2.Value || ref1.Direction != ref2.Direction)
                    {
                        ea.Execute(() => {
                            throw new ValidationException(Strings.ExInvalidPrimaryKeyColumnsCollection, Path);
                        });
                    }
                }

                // Included columns
                var fullKeySet = EnumerableExtensions.ToHashSet(KeyColumns
                                                                .Select(cr => cr.Value)
                                                                .Concat(PrimaryKeyColumns.Select(cr => cr.Value)));

                foreach (var columnRef in IncludedColumns)
                {
                    if (fullKeySet.Contains(columnRef.Value))
                    {
                        ea.Execute(() => {
                            throw new ValidationException(Strings.ExInvalidIncludedColumnsCollection, Path);
                        });
                    }
                }

                foreach (var group in IncludedColumns
                         .GroupBy(keyColumn => keyColumn)
                         .Where(group => group.Count() > 1))
                {
                    ea.Execute((_column) => {
                        throw new ValidationException(
                            string.Format(Strings.ExMoreThenOneIncludedColumnReferenceToColumnX, _column.Name),
                            Path);
                    }, group.Key);
                }

                ea.Complete();
            }
        }
Example #10
0
        /// <summary>
        /// Validate the Primary Keys only exist once in the sheet
        /// </summary>
        private void ValidatePrimaryKeysUnique(ICOBieSheetValidationTemplate SheetValidator)
        {
            var dupes = Rows
                        .Select((v, i) => new { row = v, index = i })                                                                //get COBieRow and its index in the list
                        .GroupBy(r => r.row.GetPrimaryKeyValue.ToLower().Trim(), (key, group) => new { rowkey = key, rows = group }) //group by the primary key value(s) joint as a delimited string
                        .Where(grp => grp.rows.Count() > 1);


            List <string> keyColList = new List <string>();

            foreach (COBieColumn col in KeyColumns)
            {
                keyColList.Add(col.ColumnName);
            }
            string keyCols = string.Join(",", keyColList);

            //set the index for the reported error row numbers
            int errorRowInc = 2;                          //default for rows starting at row two - ErrorRowIndexBase.Two

            if (_errorRowIdx == ErrorRowIndexBase.RowOne) //if error row starting sow set the the row numbered one
            {
                errorRowInc = 1;
            }

            foreach (var dupe in dupes)
            {
                List <string> indexList = new List <string>();

                foreach (var row in dupe.rows)
                {
                    if (SheetValidator != null && SheetValidator.IsRequired.ContainsKey(row.index) && SheetValidator.IsRequired[row.index])
                    {
                        indexList.Add((row.index + errorRowInc).ToString());
                    }
                }
                string rowIndexList = string.Join(",", indexList);
                foreach (var row in dupe.rows)
                {
                    if (SheetValidator != null && SheetValidator.IsRequired.ContainsKey(row.index) &&
                        SheetValidator.IsRequired[row.index])
                    {
                        string errorDescription = String.Format(ErrorDescription.PrimaryKey_Violation, keyCols,
                                                                rowIndexList);
                        COBieError error = new COBieError(SheetName, keyCols, errorDescription,
                                                          COBieError.ErrorTypes.PrimaryKey_Violation,
                                                          COBieError.ErrorLevels.Error, row.row.InitialRowHashValue, KeyColumns.First().ColumnOrder,
                                                          (row.index + 1));
                        _errors.Add(error);
                    }
                }
            }
        }
Example #11
0
 /// <summary>
 /// Specify the key column name
 /// </summary>
 /// <param name="columnName">Column name</param>
 public OneToManyPart <TChild> KeyColumn(string columnName)
 {
     KeyColumns.Clear();
     KeyColumns.Add(columnName);
     return(this);
 }
Example #12
0
        public virtual string TransformText()
        {
            #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt"

            if (DbmsPlatform == "SQL Server")
            {
            #line default
            #line hidden
                this.Write("IF OBJECT_ID(N\'");

            #line 1 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView));

            #line default
            #line hidden
                this.Write("\', N\'V\') IS NULL\r\n\tEXECUTE (\'CREATE VIEW ");

            #line 2 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView));

            #line default
            #line hidden
                this.Write(" AS SELECT NULL AS CREATE_OR_REPLACE\');\r\nGO\r\n\r\nALTER VIEW ");

            #line 5 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView));

            #line default
            #line hidden
                this.Write(" AS\r\n-- This code was generated by ");

            #line 6 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(TemplateName));

            #line default
            #line hidden
                this.Write(" @ ");

            #line 6 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DateTime.Now.ToString()));

            #line default
            #line hidden
                this.Write("\r\n");

            #line 7 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"

                if (DbmsVersion > new Version(11, 0)) // SQL Server 2012
                {
            #line default
            #line hidden
                    this.Write("SELECT\r\n\tD.");

            #line 12 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden

            #line 12 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight()));

            #line default
            #line hidden
                    this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t");

            #line 16 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.InsertLeft()));

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t");

            #line 17 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write("\t\tAS START$DATE,\r\n\t\t\tLEAD(");

            #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write(", 1, CAST(\'2999-12-31\' AS DATE)) OVER (PARTITION BY ");

            #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns));

            #line default
            #line hidden
                    this.Write(" ORDER BY ");

            #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write(")\r\n\t\t\t\t\t\t\t\t\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\t");

            #line 21 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceView));

            #line default
            #line hidden
                    this.Write("\r\n\t)\tS,\r\n\t");

            #line 23 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyView));

            #line default
            #line hidden
                    this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D.");

            #line 25 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                    this.Write("\r\n\tAND S.START$DATE <= D.");

            #line 26 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 27 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                }
                else                                                            // SQL Server 2008, 2005
                {
            #line default
            #line hidden
                    this.Write("WITH TR AS\r\n(\r\n\tSELECT\r\n\t\t*,\r\n\t\tROW_NUMBER() OVER (PARTITION BY ");

            #line 36 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns));

            #line default
            #line hidden
                    this.Write(" ORDER BY ");

            #line 36 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write(") AS ROW$NUMBER\r\n\tFROM\r\n\t\t");

            #line 38 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceView));

            #line default
            #line hidden
                    this.Write("\r\n)\r\nSELECT\r\n\tD.");

            #line 41 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden

            #line 41 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight()));

            #line default
            #line hidden
                    this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t");

            #line 45 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "t1." + c).InsertLeft()));

            #line default
            #line hidden
                    this.Write("\r\n\t\t\tt1.");

            #line 46 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write("\t\t\t\t\t\t\t\t\t\t\tAS START$DATE,\r\n\t\t\tISNULL(t2.");

            #line 47 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                    this.Write(", CAST(\'2999-12-31\' AS DATE))\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\tTR t1 LEFT OUTER JOIN\r\n" +
                               "\t\t\tTR t2 ON (");

            #line 50 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(String.Join(" AND ", KeyColumns.Select(k => string.Format(@"t1.{0} = t2.{0}", k)))));

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\tAND t1.ROW$NUMBER + 1 = t2.ROW$NUMBER)\r\n\t)\tS,\r\n\t");

            #line 53 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyView));

            #line default
            #line hidden
                    this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D.");

            #line 55 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                    this.Write("\r\n\tAND S.START$DATE <= D.");

            #line 56 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                    this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 57 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql"
                }


            #line default
            #line hidden
                this.Write(@";
GO

----------------------------------------------------------------------------------------------------
--
--	Copyright 2013 Abel Cheng
--	This source code is subject to terms and conditions of the Apache License, Version 2.0.
--	See http://www.apache.org/licenses/LICENSE-2.0.
--	All other rights reserved.
--	You must not remove this notice, or any other, from this software.
--
--	Original Author:	Abel Cheng <*****@*****.**>
--	Created Date:		May 15, 2013, 11:25:04 PM
--	Primary Host:		http://t4sql.codeplex.com
--	Change Log:
--	Author				Date			Comment
--
--
--
--
--	(Keep code clean)
--
----------------------------------------------------------------------------------------------------
");
                this.Write("\r\n");

            #line 9 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt"
            }
            else
            if (DbmsPlatform == "Oracle")
            {
            #line default
            #line hidden
                this.Write("CREATE OR REPLACE VIEW ");

            #line 1 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView));

            #line default
            #line hidden
                this.Write(" AS\r\nSELECT\r\n\t-- This code was generated by ");

            #line 3 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(TemplateName));

            #line default
            #line hidden
                this.Write(" @ ");

            #line 3 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DateTime.Now.ToString()));

            #line default
            #line hidden
                this.Write("\r\n\tD.");

            #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden

            #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight()));

            #line default
            #line hidden
                this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t");

            #line 8 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.InsertLeft()));

            #line default
            #line hidden
                this.Write("\r\n\t\t\t");

            #line 9 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                this.Write("\t\tAS START$DATE,\r\n\t\t\tLEAD(");

            #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                this.Write(", 1, TO_DATE(\'2999-12-31\', \'YYYY-MM-DD\')) OVER (PARTITION BY ");

            #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns));

            #line default
            #line hidden
                this.Write(" ORDER BY ");

            #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn));

            #line default
            #line hidden
                this.Write(")\r\n\t\t\t\t\t\t\t\t\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\t");

            #line 13 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(SourceView));

            #line default
            #line hidden
                this.Write("\r\n\t)\tS,\r\n\t");

            #line 15 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DailyView));

            #line default
            #line hidden
                this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D.");

            #line 17 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                this.Write("\r\n\tAND S.START$DATE <= D.");

            #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql"
                this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn));

            #line default
            #line hidden
                this.Write(@"

WITH READ ONLY;

----------------------------------------------------------------------------------------------------
--
--	Copyright 2013 Abel Cheng
--	This source code is subject to terms and conditions of the Apache License, Version 2.0.
--	See http://www.apache.org/licenses/LICENSE-2.0.
--	All other rights reserved.
--	You must not remove this notice, or any other, from this software.
--
--	Original Author:	Abel Cheng <*****@*****.**>
--	Created Date:		May 15, 2013, 11:25:04 PM
--	Primary Host:		http://t4sql.codeplex.com
--	Change Log:
--	Author				Date			Comment
--
--
--
--
--	(Keep code clean)
--
----------------------------------------------------------------------------------------------------
");
                this.Write("\r\n");

            #line 15 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt"
            }
            else
            {
                Error("T4SQL.Date.VTimePointsToSeries is not implemented for " + DbmsPlatform);
            }


            #line default
            #line hidden

            #line 21 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt"

            /*
             *      Before building the project or checking in code, if any included file changes,
             *      you should re-transform the including template in the solution by:
             *
             *	Right-click one or more files in Solution Explorer and then click Run Custom Tool.
             *              Use this method to transform a selected set of templates.
             *      or
             *	Click Transform All Templates in the Solution Explorer toolbar.
             *              This will transform all the templates in the Visual Studio solution.
             *      or
             *	Installed Visual Studio Visualization and Modeling SDK
             *              http://archive.msdn.microsoft.com/vsvmsdk,
             *              And setup all the templates transformed automatically:
             *              http://msdn.microsoft.com/en-us/library/dd820620.aspx#Regenerating
             *              http://msdn.microsoft.com/en-us/library/ee847423.aspx
             *              http://msdn.microsoft.com/en-us/library/ff521399.aspx
             */


            #line default
            #line hidden
            return(this.GenerationEnvironment.ToString());
        }
Example #13
0
 public AttributeDef(string name, Column[] keyColumns, Column nameColumn) : base(name)
 {
     KeyColumns.AddRange(keyColumns);
     NameColumn = nameColumn;
 }
Example #14
0
 /// <summary>
 /// Builds a table with the builder data.
 /// </summary>
 /// <returns></returns>
 public ITable Build()
 {
     return(new Table(Name, KeyColumns.ToArray(), Columns, Schema, SynchronizationStrategy));
 }
Example #15
0
        public void FreezeReference(TableModel table, IEnumerable <TableModel> tables)
        {
            ReferenceTable = tables.FirstOrDefault(t => t.Property.Name == _referenceTable.Name);

            if (ReferenceTable == null)
            {
                throw BuilderError.SelectorNotMappedToTable(_referenceTable.Name, _referenceTable.DeclaringType.Name).AsException();
            }

            ReferenceColumns = _referenceColumns.MatchColumns(ReferenceTable.Name, ReferenceTable.Columns).ToImmutableArray();

            // If the name was not explicitly set then we generate one based on the table and column names
            if (Name == null)
            {
                Name = BuilderHelper.GenerateForeignKeyName(table.Schema, table.Name, KeyColumns.Select(c => c.Name), ReferenceTable.Schema, ReferenceTable.Name);
            }
        }