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()); }
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)); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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); }
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); }
void WriteBasic(TableWriter writer, string value) { if (IsBasic) { BasicType.WriteValue(writer, value); } else if (IsEnum) { writer.WriteInt32(GetEnumValue(value)); } else { throw new Exception($"当前类型不是基础类型 : {Type}"); } }
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(); } }
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 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()); }
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()); }
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()); }