Example #1
0
        public void ComputeAsFieldWriter()
        {
            var model  = PersistentModel.Compile(SimpleModelWithComputeBy);
            var master = model["master"];
            var mwr    = new TableWriter(master)
            {
                Dialect     = DbDialect.SqlServer,
                NoDelimiter = true,
                NoComment   = true,
                Mode        = ScriptMode.Create
            };

            var scr = mwr.ToString();

            Console.WriteLine(scr.Replace("\"", "\"\""));
            Assert.AreEqual(@"CREATE TABLE ""dbo"".""master"" (
	""id"" int NOT NULL CONSTRAINT dbo_master_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""master_seq""),
	""code"" nvarchar(255) NOT NULL CONSTRAINT dbo_master_code_unq UNIQUE DEFAULT '',
	""code2"" AS (code+'a')
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=0)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (0, '/');
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=-1)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (-1, 'ERR');
EXECUTE sp_addextendedproperty N'MS_Description', 'Код', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'code';
EXECUTE sp_addextendedproperty N'MS_Description', 'Код2', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'code2';
".Trim(), scr.Trim());
        }
Example #2
0
        public void Create(int szDatum, uint tag)
        {
            Assert(!IsConnected);
            Assert(szDatum > 0);

            lock (m_rwLock)
            {
                const int BUFFER_SIZE = 4096;

                szDatum = Math.Max(szDatum, sizeof(long));

                System.Diagnostics.Debug.WriteLine($"Création de la table {Path.GetFileName(Name)}");

                m_dataFile = new FileStream(FilePath,
                                            FileMode.CreateNew,
                                            FileAccess.ReadWrite,
                                            FileShare.Read,
                                            BUFFER_SIZE,
                                            FileOptions.RandomAccess);


                m_header = new Header(szDatum, tag);
                var writer = new TableWriter(m_dataFile);
                m_header.Store(writer);
                m_buffer = new byte[szDatum];

                var ms = new MemoryStream(m_buffer, true);
                m_reader = new TableReader(ms);
                m_writer = new TableWriter(ms);
            }
        }
        private void SaveMeltResults()
        {
            var arguments = new List <Tuple <string, double> >
            {
                new Tuple <string, double>(@"G шлака, т", GshlSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"L СО_СО2, м3", LSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"Теплопотери, кДж", TeplFutLossSAVE[adaptROUND - 1]),
                new Tuple <string, double>(@"Р2О5 шл", Tube.Шлак.P2O5),
                new Tuple <string, double>(@"Сумм расх-ие балансов, %", adaptCOMPAIR * 100)
            };

            if (_isFixedMass)
            {
                arguments.Add(new Tuple <string, double>(@"alfa Fe, доли", alfaFeSAVE[adaptROUND - 1]));
                arguments.Add(new Tuple <string, double>(@"В", Tube.Шлак.B));
            }
            else
            {
                arguments.Add(new Tuple <string, double>(@"alfa Fe, доли", Params.alfaFe));
                arguments.Add(new Tuple <string, double>(@"В", (Tube.Шлак.CaO + Tube.Шлак.MgO) / Tube.Шлак.SiO2));
                arguments.Add(new Tuple <string, double>(@"Gст, т", Estimation.GstYieldSAVE[adaptROUND - 1]));
                arguments.Add(new Tuple <string, double>(@"alfa Изв, доли", Estimation.ALFAizvSAVE[adaptROUND - 1]));
            }

            var write = new TableWriter(Settings.Default.MelpMdb);

            write.Write("adaptationdata", arguments, NumberOfAdaptedMelt + 1);
        }
        public void TableWriterColumnConstraintsPadsWithTooLargeColumn()
        {
            var mockOutputter = new Mock <IConsoleOutputter>();
            var target        = new TableWriter(mockOutputter.Object, new ViewPort(100, 100));
            int columnWidth   = 25;

            var table = new DisplayTable()
            {
                Header = new TableRow {
                    Cells = new[] { new BasicTableCell {
                                        ContentAreas = new[] { new BasicCellContent {
                                                                   Value = "TestCell"
                                                               } }
                                    } }
                },
                ColumnDetails = new[] { new ColumnDetails {
                                            columnName = "harrumph", columnWidth = columnWidth, isNullable = false, type = Data.DataType.String
                                        } },
                Rows = new[] { new TableRow {
                                   Cells = new[] { new BasicTableCell {
                                                       ContentAreas = new[] { new BasicCellContent {
                                                                                  Value = "This is a test value."
                                                                              } }
                                                   } }
                               } }
            };

            target.Draw(table);
            string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations);

            Assert.Contains("    This is a test value.", s);
        }
        public void TableWriterColumnConstraintsRespectedOverallWidth()
        {
            var mockOutputter = new Mock <IConsoleOutputter>();
            var target        = new TableWriter(mockOutputter.Object, new ViewPort(100, 100));
            int columnWidth   = new Random().Next(95);

            var table = new DisplayTable()
            {
                Header = new TableRow {
                    Cells = new[] { new BasicTableCell {
                                        ContentAreas = new[] { new BasicCellContent {
                                                                   Value = "TestCell"
                                                               } }
                                    } }
                },
                ColumnDetails = new[] { new ColumnDetails {
                                            columnName = "harrumph", columnWidth = columnWidth, isNullable = false, type = Data.DataType.String
                                        } },
                Rows = new[] { new TableRow {
                                   Cells = new[] { new BasicTableCell {
                                                       ContentAreas = new[] { new BasicCellContent {
                                                                                  Value = "This is a test value."
                                                                              } }
                                                   } }
                               } }
            };

            target.Draw(table);
            string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations);

            string[] effectiveLines = s.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
            Assert.True(effectiveLines.All(l => l.Length == columnWidth + ("|".Length * 2)), GetLengths(effectiveLines));
        }
Example #6
0
        void Open()
        {
            const int BUFFER_SIZE = 4096;

            System.Diagnostics.Debug.WriteLine($"Ouverture de la table {Name}.");

            m_dataFile = new FileStream(FilePath,
                                        FileMode.Open,
                                        FileAccess.ReadWrite,
                                        FileShare.Read,
                                        BUFFER_SIZE,
                                        FileOptions.RandomAccess);

            var reader = new TableReader(m_dataFile);

            m_header = new Header();
            m_header.Load(reader);

            m_buffer = new byte[m_header.FrameSize];
            var ms = new MemoryStream(m_buffer, true);

            m_reader = new TableReader(ms);
            m_writer = new TableWriter(ms);

            Init(reader);
        }
Example #7
0
        public void TableWriterWritesExpected()
        {
            var  mockOutputter = new Mock <IConsoleOutputter>();
            var  target        = new TableWriter(mockOutputter.Object, new ViewPort(100, 100));
            Guid expectedValue = Guid.NewGuid();

            var table = new DisplayTable()
            {
                Header = new TableRow {
                    Cells = new[] { new BasicTableCell {
                                        ContentAreas = new[] { new BasicCellContent {
                                                                   Value = "TestCell"
                                                               } }
                                    } }
                },
                ColumnDetails = new[] { new ColumnDetails {
                                            columnName = "harrumph", columnWidth = expectedValue.ToString().Length + 2, isNullable = false, type = Data.DataType.String
                                        } },
                Rows = new[] { new TableRow {
                                   Cells = new[] { new BasicTableCell {
                                                       ContentAreas = new[] { new BasicCellContent {
                                                                                  Value = expectedValue.ToString()
                                                                              } }
                                                   } }
                               } }
            };

            target.Draw(table);
            string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations);

            Assert.Contains(expectedValue.ToString(), s);
        }
Example #8
0
        protected void WriteAssociations()
        {
            var driver = new SeparatedTextDriver();

            TableWriter.Write <XAssociation>(Export.PATH_ASSOCIATIONS, _rows.OfType <XUser>().Select(v => new XAssociation(v.Neptun, v.EducationProgram, v.Identifier)), driver);
            Log.Write(Export.PATH_ASSOCIATIONS);
        }
Example #9
0
        public static void ExportCreditStatistics(IEnumerable <Student> students)
        {
            Dictionary <string, StatisticalFilter> filters = new Dictionary <string, StatisticalFilter>();

            filters["MIND"] = s => true;
            filters["PASS"] = s => s.Specialization != null;
            filters["FAIL"] = s => s.Specialization == null;
            foreach (var code in students.Select(s => s.EducationProgram).Distinct())
            {
                foreach (var filter in filters)
                {
                    Dictionary <string, XHistogram[]> histograms = new Dictionary <string, XHistogram[]>();
                    string[] groups = students.Where(s => s.EducationProgram == code).SelectMany(s => s.CreditPerGroup.Keys).Distinct().ToArray();
                    foreach (string group in groups)
                    {
                        var values    = students.Where(s => s.EducationProgram == code).Where(s => filter.Value(s)).Where(s => s.CreditPerGroup.Sum(e => e.Value) > 0).Select(student => student.CreditPerGroup[group]);
                        var histogram = values.GroupBy(i => i).OrderBy(e => e.Key).Select(e => new XHistogram(e.Key, e.Count()));
                        histograms.Add(group, histogram.ToArray());
                    }
                    var driver = new ExcelDriver();
                    foreach (var sheet in histograms)
                    {
                        TableWriter.Write <XHistogram>(Export.PATH_HISTOGRAM, sheet.Value, driver, code + "+" + filter.Key + "+" + sheet.Key);
                    }
                }
            }
            Log.Write(Export.PATH_HISTOGRAM);
        }
Example #10
0
 void Write(TableWriter writer, IValue value)
 {
     if (IsBasic || IsEnum)
     {
         if (IsArray)
         {
             var list = value as ValueList;
             if (list.IsEmptyValue())
             {
                 writer.WriteInt32(0);
             }
             else
             {
                 writer.WriteInt32(list.Count);
                 for (var i = 0; i < list.Count; ++i)
                 {
                     WriteBasic(writer, list[i].Value);
                 }
             }
         }
         else
         {
             WriteBasic(writer, value.Value);
         }
     }
     else
     {
         WriteCustom(writer, value as ValueList, IsArray);
     }
 }
Example #11
0
        private static void ShowStudentOrders(IReadOnlyCollection <Person> students)
        {
            if (students == null || students.Count == 0)
            {
                Console.WriteLine("По данному запросу ничего не найдено. Нажмите любую кнопку для продолжения.");
                Console.ReadLine();
                return;
            }
            TableWriter.PrintLine();
            TableWriter.PrintRow("Id", "Имя", "Фамилия", "Книги");
            TableWriter.PrintLine();
            foreach (var student in students)
            {
                var orders            = student.Orders.Select(x => x.BookOrders.FirstOrDefault()).ToArray();
                var books             = orders.Select(x => x.Book.Name);
                var userFriendlyNames = string.Join(' ', books);
                TableWriter.PrintRow(
                    student.Id.ToString(),
                    student.FirstName,
                    student.LastName,
                    userFriendlyNames);
            }

            TableWriter.PrintLine();
            Console.ReadLine();
        }
        public void TableWriterWritesSomething()
        {
            var mockOutputter = new Mock <IConsoleOutputter>();
            var target        = new TableWriter(mockOutputter.Object, new ViewPort(100, 100));

            var table = new DisplayTable()
            {
                Header = new TableRow {
                    Cells = new[] { new BasicTableCell {
                                        ContentAreas = new ICellContent[] {
                                            new BasicCellContent {
                                                Value = "TestCell"
                                            },
                                            new BreakingRuleContentArea(),
                                            new BasicCellContent {
                                                Value = "Line2"
                                            }
                                        }
                                    } }
                },
                ColumnDetails = new [] { new ColumnDetails {
                                             columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String
                                         } }
            };

            target.Draw(table);
            string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations);

            Assert.Contains("Line2", s);
        }
Example #13
0
        public void CanGenerateTableWithSystemName(string name)
        {
            var code  = @"
class " + name + @" prototype=dbtable
	ref "     + name + @"
";
            var model = PersistentModel.Compile(code);
            var t     = model[name];
            var mwr   = new TableWriter(t)
            {
                Dialect     = DbDialect.SqlServer,
                NoDelimiter = true,
                NoComment   = true,
                Mode        = ScriptMode.Create
            };
            var scr = mwr.ToString();

            Console.WriteLine(scr);
            //Console.WriteLine("------------------  for copy-paste --------------------------");
            //Console.WriteLine(scr.Replace("\"","\"\"").Replace("\""+name+"\"","\"{0}\"").Replace("_"+name+"_","_{0}_"));
            Assert.AreEqual(string.Format(@"CREATE TABLE ""dbo"".""{0}"" (
	""id"" int NOT NULL CONSTRAINT dbo_{0}_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""{0}_seq""),
	""{0}"" int NOT NULL CONSTRAINT dbo_{0}_{0}_{0}_id_fk FOREIGN KEY REFERENCES ""dbo"".""{0}"" (""id"") DEFAULT 0
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""{0}"" where ""id""=0)  INSERT INTO ""dbo"".""{0}"" (""id"") VALUES (0);
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""{0}"" where ""id""=-1)  INSERT INTO ""dbo"".""{0}"" (""id"", ""{0}"") VALUES (-1, -1);
".Trim(), name), scr.Trim());
        }
        public void TableWriterMultipleRows()
        {
            var mockOutputter = new Mock <IConsoleOutputter>();
            var target        = new TableWriter(mockOutputter.Object, new ViewPort(100, 100));

            var table = new DisplayTable()
            {
                Header = new TableRow
                {
                    Cells = new[] { new BasicTableCell {
                                        ContentAreas = new ICellContent[] {
                                            new BasicCellContent {
                                                Value = "TestCell"
                                            },
                                            new BreakingRuleContentArea(),
                                            new BasicCellContent {
                                                Value = "Line2"
                                            }
                                        }
                                    } }
                },
                ColumnDetails = new[] { new ColumnDetails {
                                            columnName = "harrumph", columnWidth = 10, isNullable = false, type = Data.DataType.String
                                        } }
            };

            target.Draw(table);
            string s = ConsoleOutputHelper.getConsoleOutput(mockOutputter.Invocations);

            string[] effectiveLines = s.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
            Assert.Equal(4, effectiveLines.Length);
        }
 public XlsWriter(ExportOptionsViewModel options, IList <TITem> items, Stream stream)
 {
     Items        = items;
     _stream      = stream;
     _workbook    = new XLWorkbook();
     _worksheet   = _workbook.Worksheets.Add(typeof(TITem).Name);
     _tableWriter = new TableFactory().CreateXlsxWriter <TITem>(_worksheet, 1, 1);
 }
Example #16
0
        public override string TeXChunk(PivotTable table)
        {
            var captionText = _builderRepository.ChunkFor(table.Caption);
            var pivoter     = new Pivoter();
            var pivotData   = pivoter.PivotData(table.Data, table.PivotInfo);

            return(TableWriter.PivotTable(captionText, table.Label, pivotData.DefaultView, table.Data.Table, table.PivotInfo, table.TexTranslations, table.Converter, _builderRepository));
        }
        public void BuildInto(StringBuilder sb)
        {
            var calc    = new TableInfoCalculator();
            var info    = calc.CalculateTableInfo(this);
            var writer  = new TableWriter(sb, info.TableSize, Options.Charset);
            var builder = new TableBuilder();

            builder.Build(info, writer);
        }
Example #18
0
        public static void ExportReports(IEnumerable <Student> students, IEnumerable <Specialization> specializations, IEnumerable <SpecializationGrouping> specializationGroupings)
        {
            var driver = new ExcelDriver();

            TableWriter.Write <XStudent>(Export.PATH_REPORT, students.Select(student => new XStudent(student)), driver);
            TableWriter.Write <XSumma>(Export.PATH_REPORT, specializations.Select(specialization =>
                                                                                  new XSumma(specialization, specializationGroupings)), driver);
            Log.Write(Export.PATH_REPORT);
        }
Example #19
0
    private void WriteField(TableWriter writer, object value, PackageField field)
    {
        var basic = BasicUtil.GetType(field.Type);

        if (basic != null)
        {
            if (field.Array)
            {
                var list = value as ScriptArray;
                if (Util.IsEmptyValue(list))
                {
                    writer.WriteInt32(0);
                }
                else
                {
                    int count = list.Count();
                    writer.WriteInt32(count);
                    for (int i = 0; i < count; ++i)
                    {
                        basic.WriteValue(writer, list.GetValue(i).ToString());
                    }
                }
            }
            else
            {
                basic.WriteValue(writer, value.ToString());
            }
        }
        else if (field.Enum)
        {
            if (field.Array)
            {
                var list = value as ScriptArray;
                if (Util.IsEmptyValue(list))
                {
                    writer.WriteInt32(0);
                }
                else
                {
                    int count = list.Count();
                    writer.WriteInt32(count);
                    for (int i = 0; i < count; ++i)
                    {
                        writer.WriteInt32(GetEnumValue(field.Type, value.ToString()));
                    }
                }
            }
            else
            {
                writer.WriteInt32(GetEnumValue(field.Type, value.ToString()));
            }
        }
        else
        {
            WriteCustom(writer, value as ScriptArray, mCustoms[field.Type], field.Array);
        }
    }
        public override void Generate(ReportContext context)
        {
            var result   = new Dictionary <string, Dictionary <DayOfWeek, int> >();
            var messages = GetMessages();

            foreach (var message in messages)
            {
                var day = message.Timestamp.DayOfWeek;
                Dictionary <DayOfWeek, int> childDict;
                if (!result.ContainsKey(message.Author))
                {
                    childDict = new Dictionary <DayOfWeek, int>();
                    result.Add(message.Author, childDict);
                }
                else
                {
                    childDict = result[message.Author];
                }
                if (childDict.ContainsKey(day))
                {
                    childDict[day]++;
                }
                else
                {
                    childDict.Add(day, 1);
                }
            }
            CommonWriter.WriteTitle(context, "Report by day of week message count");

            GenerateHeader(context);
            Dictionary <string, string> normalNames =
                result.Select(pair => new Tuple <string, string>(GetMember(pair.Key).DisplayName, pair.Key)).OrderBy(
                    i => i.Item1).ToDictionary(i => i.Item1, i => i.Item2);


            foreach (var key in normalNames)
            {
                var           value = result[key.Value];
                List <string> data  = new List <string>();
                data.Add(key.Key);
                foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
                {
                    if (value.ContainsKey(day))
                    {
                        data.Add(value[day].ToString());
                    }
                    else
                    {
                        data.Add("0");
                    }
                }

                TableWriter.WriteBody(context, data.ToArray());
            }
            TableWriter.WriteFooter(context);
        }
        private void GenerateHeader(ReportContext context, DateTime minDate, DateTime maxDate)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            for (DateTime item = minDate; item <= maxDate; item = item.AddMonths(1))
            {
                header.Add(item.ToString("MMMM yyyy"));
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
Example #22
0
        private void GenerateHeader(ReportContext context, short min, short max)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            for (short i = min; i <= max; i++)
            {
                header.Add(i.ToString());
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
        private void GenerateHeader(ReportContext context)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
            {
                header.Add(day.ToString());
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
Example #24
0
        private TableWriter <TModel> CreateTableWriter <TModel>(StringWriter strWriter,
                                                                IRowWriter rowWriter   = null, ITypeConverterResolver typeConvResolver = null,
                                                                IPropertyMapper mapper = null)
        {
            rowWriter        = rowWriter ?? new CsvRowWriter(strWriter);
            typeConvResolver = typeConvResolver ?? new DefaultTypeConverterResolver <TModel>();
            mapper           = mapper ?? new AutoIndexPropertyMapper();

            var tableWriter = new TableWriter <TModel>(rowWriter, typeConvResolver, mapper);

            return(tableWriter);
        }
Example #25
0
 public void Write(TableWriter writer, string value)
 {
     value = value.IsEmptyString() ? Default : value;
     if (!IsArray && (IsBasic || IsEnum))
     {
         Write(writer, new ValueString(value));
     }
     else
     {
         Write(writer, new ValueParser($"[{value}]").GetObject() as ValueList);
     }
 }
        private void TestDb()
        {
            var write = new TableWriter(Settings.Default.ParamsMdb);

            var tuples = new List <Tuple <string, double> >();
            var tuple1 = new Tuple <string, double>("Угар Fe в дым", 1.0d);
            var tuple2 = new Tuple <string, double>("Масса гот стали (выход)", 1.0d);

            tuples.Add(tuple1);
            tuples.Add(tuple2);

            write.Write("countdata", tuples, 1);
        }
Example #27
0
        public async Task Start()
        {
            await TableWriter.Box("NPC Store Main Menu", 0, ConsoleColor.Red, ConsoleColor.Blue);

            var options = new[]
            {
                "1. View products",
                "2. Add an item to cart",
                "3. View your cart",
                "4. Checkout",
                "5. Exit the program"
            };
            await TableWriter.Content("Choose an option", options, 0, 0);
        }
        private void SaveFile(string fileName, int filterIndex, IEnumerable <DataRow> collection)
        {
            FileStream filestream;

            try
            {
                filestream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
            }
            catch (IOException)
            {
                return;
            }

            TableWriter.WriteTable(filestream, filterIndex, collection);
        }
Example #29
0
 void WriteBasic(TableWriter writer, string value)
 {
     if (IsBasic)
     {
         BasicType.WriteValue(writer, value);
     }
     else if (IsEnum)
     {
         writer.WriteInt32(GetEnumValue(value));
     }
     else
     {
         throw new Exception($"当前类型不是基础类型 : {Type}");
     }
 }
Example #30
0
        public void Clear()
        {
            Assert(IsConnected);

            lock (m_rwLock)
            {
                m_header.Reset();

                var writer = new TableWriter(m_dataFile);
                m_dataFile.Position = 0;
                m_header.Store(writer);

                SourceCleared?.Invoke();
            }
        }
Example #31
0
		public void CanGenerateTableWithSystemName(string name){
			var code = @"
class " + name + @" prototype=dbtable
	ref " + name + @"
";
			var model = PersistentModel.Compile(code);
			var t = model[name];
			var mwr = new TableWriter(t)
			{
				Dialect = DbDialect.SqlServer,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};
			var scr = mwr.ToString();
			Console.WriteLine(scr);
			//Console.WriteLine("------------------  for copy-paste --------------------------");
			//Console.WriteLine(scr.Replace("\"","\"\"").Replace("\""+name+"\"","\"{0}\"").Replace("_"+name+"_","_{0}_"));
			Assert.AreEqual(string.Format(@"CREATE TABLE ""dbo"".""{0}"" (
	""id"" int NOT NULL CONSTRAINT dbo_{0}_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""{0}_seq""),
	""{0}"" int NOT NULL CONSTRAINT dbo_{0}_{0}_{0}_id_fk FOREIGN KEY REFERENCES ""dbo"".""{0}"" (""id"") DEFAULT 0
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""{0}"" where ""id""=0)  INSERT INTO ""dbo"".""{0}"" (""id"") VALUES (0);
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""{0}"" where ""id""=-1)  INSERT INTO ""dbo"".""{0}"" (""id"", ""{0}"") VALUES (-1, -1);
".Trim(),name), scr.Trim());
		}
Example #32
0
		public void CircularPreventFkes()
		{
			var model = PersistentModel.Compile(CircularModel);
			var master = model["master"];
			var mwr = new TableWriter(master)
			{
				Dialect = DbDialect.SqlServer,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};
			var scr = mwr.ToString();
			Console.WriteLine(scr.Replace("\"","\"\""));
			Assert.AreEqual(@"
CREATE TABLE ""dbo"".""master"" (
	""id"" int NOT NULL CONSTRAINT dbo_master_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""master_seq""),
	""code"" nvarchar(255) NOT NULL CONSTRAINT dbo_master_code_unq UNIQUE DEFAULT '',
	""slave"" int NOT NULL DEFAULT 0
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=0)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (0, '/');
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=-1)  INSERT INTO ""dbo"".""master"" (""id"", ""code"", ""slave"") VALUES (-1, 'ERR', -1);
EXECUTE sp_addextendedproperty N'MS_Description', 'Код', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'code';
EXECUTE sp_addextendedproperty N'MS_Description', 'Младший объект', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'slave';
".Trim(), scr.Trim());
			var slave = model["slave"];
			var swr = new TableWriter(slave)
			{
				Dialect = DbDialect.SqlServer,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};
			scr = swr.ToString();
			Console.WriteLine(scr.Replace("\"", "\"\""));
			Assert.AreEqual(@"
CREATE TABLE ""dbo"".""slave"" (
	""id"" int NOT NULL CONSTRAINT dbo_slave_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""slave_seq""),
	""version"" datetime NOT NULL DEFAULT ('19000101'),
	""master"" int NOT NULL DEFAULT 0
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""slave"" where ""id""=0)  INSERT INTO ""dbo"".""slave"" (""id"") VALUES (0);
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""slave"" where ""id""=-1)  INSERT INTO ""dbo"".""slave"" (""id"", ""master"") VALUES (-1, -1);
EXECUTE sp_addextendedproperty N'MS_Description', 'Версия', N'SCHEMA', N'dbo', N'TABLE', N'slave', N'COLUMN', 'version';
EXECUTE sp_addextendedproperty N'MS_Description', 'Главный объект', N'SCHEMA', N'dbo', N'TABLE', N'slave', N'COLUMN', 'master';
".Trim(), scr.Trim());
		}
Example #33
0
		public void TableWriterWithPkUniqueAndForeignKeyPostgresql()
		{
			var model = PersistentModel.Compile(SimpleModel);
			var master = model["master"];
			var mwr = new TableWriter(master)
			{
				Dialect = DbDialect.PostGres,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};
			var scr = mwr.ToString();
			Console.WriteLine(scr.Replace("\"","\"\""));
			Assert.AreEqual(@"
CREATE TABLE ""dbo"".""master"" (
	""id"" int NOT NULL CONSTRAINT dbo_master_id_pk PRIMARY KEY DEFAULT (nextval('""dbo"".""master_seq""')),
	""code"" varchar(255) NOT NULL CONSTRAINT dbo_master_code_unq UNIQUE DEFAULT ''
) TABLESPACE SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=0)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (0, '/');
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=-1)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (-1, 'ERR');
COMMENT ON COLUMN ""dbo"".""master"".""code"" IS 'Код';
".Trim(), scr.Trim());
			var slave = model["slave"];
			var swr = new TableWriter(slave)
			{
				Dialect = DbDialect.PostGres,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};
			scr = swr.ToString();
			Console.WriteLine(scr.Replace("\"", "\"\""));
			Assert.AreEqual(@"CREATE TABLE ""dbo"".""slave"" (
	""id"" int NOT NULL CONSTRAINT dbo_slave_id_pk PRIMARY KEY DEFAULT (nextval('""dbo"".""slave_seq""')),
	""version"" timestamp NOT NULL DEFAULT ('19000101'),
	""master"" int NOT NULL CONSTRAINT dbo_slave_master_master_id_fk REFERENCES ""dbo"".""master"" (""id"") DEFERRABLE DEFAULT 0
) TABLESPACE SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""slave"" where ""id""=0)  INSERT INTO ""dbo"".""slave"" (""id"") VALUES (0);
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""slave"" where ""id""=-1)  INSERT INTO ""dbo"".""slave"" (""id"", ""master"") VALUES (-1, -1);
COMMENT ON COLUMN ""dbo"".""slave"".""version"" IS 'Версия';
COMMENT ON COLUMN ""dbo"".""slave"".""master"" IS 'Главный объект';".Trim(), scr.Trim());
		}
Example #34
0
		public void ComputeAsFieldWriter(){
			var model = PersistentModel.Compile(SimpleModelWithComputeBy);
			var master = model["master"];
			var mwr = new TableWriter(master)
			{
				Dialect = DbDialect.SqlServer,
				NoDelimiter = true,
				NoComment = true,
				Mode = ScriptMode.Create
			};

			var scr = mwr.ToString();
			Console.WriteLine(scr.Replace("\"", "\"\""));
			Assert.AreEqual(@"CREATE TABLE ""dbo"".""master"" (
	""id"" int NOT NULL CONSTRAINT dbo_master_id_pk PRIMARY KEY DEFAULT (NEXT VALUE FOR ""dbo"".""master_seq""),
	""code"" nvarchar(255) NOT NULL CONSTRAINT dbo_master_code_unq UNIQUE DEFAULT '',
	""code2"" AS (code+'a')
) ON SECONDARY;
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=0)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (0, '/');
IF NOT EXISTS (SELECT TOP 1 * FROM ""dbo"".""master"" where ""id""=-1)  INSERT INTO ""dbo"".""master"" (""id"", ""code"") VALUES (-1, 'ERR');
EXECUTE sp_addextendedproperty N'MS_Description', 'Код', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'code';
EXECUTE sp_addextendedproperty N'MS_Description', 'Код2', N'SCHEMA', N'dbo', N'TABLE', N'master', N'COLUMN', 'code2';
".Trim(), scr.Trim());
		}