Пример #1
0
        private ClassType CreateClass(DatabaseTable table)
        {
            var name = textFormatter.FormatText(table.Name);

            ClassType classType = ClassAlreadyExists(name);

            if (classType != null)
            {
                return(classType);
            }

            classType = diagram.AddClass();
            classType.AccessModifier = AccessModifier.Public;
            classType.Modifier       = ClassModifier.None;
            classType.Name           = name;

            if (CodeGenerator.Settings.Default.GenerateNHibernateMapping)
            {
                if (CodeGenerator.Settings.Default.UseUnderscoreAndLowercaseInDB)
                {
                    classType.NHMTableName = new LowercaseAndUnderscoreTextFormatter().FormatText(table.Name);
                }
                else
                {
                    classType.NHMTableName = table.Name;
                }

                classType.IdGenerator = Enum.GetName(typeof(CodeGenerator.IdentityGeneratorType), CodeGenerator.Settings.Default.DefaultIdentityGenerator);
            }

            foreach (var column in table.Columns)
            {
                Property property = classType.AddProperty();
                property.InitFromString(CreateProperty(column, classType));

                if (CodeGenerator.Settings.Default.GenerateNHibernateMapping)
                {
                    if (CodeGenerator.Settings.Default.UseUnderscoreAndLowercaseInDB)
                    {
                        property.NHMColumnName = new LowercaseAndUnderscoreTextFormatter().FormatText(column.Name);
                    }
                    else
                    {
                        property.NHMColumnName = column.Name;
                    }

                    property.IsIdentity = column.IsPrimaryKey;

                    if (column.IsForeignKey)
                    {
                        property.ManyToOne = textFormatter.FormatText(column.ForeignKeyTableName);
                    }

                    property.IsUnique  = column.IsUniqueKey;
                    property.IsNotNull = !column.Nullable;
                }
            }

            return(classType);
        }
        public string CompositeIdMap(IList <Column> columns, ITextFormatter formatter)
        {
            var builder = new StringBuilder();


            switch (_language)
            {
            case Language.CSharp:
                builder.AppendLine("ComposedId(compId =>");
                builder.AppendLine("\t\t\t\t{");
                foreach (var column in columns)
                {
                    builder.AppendLine("\t\t\t\t\tcompId.Property(x => x." + formatter.FormatText(column.Name) + ", m => m.Column(\"" + column.Name + "\"));");
                }
                builder.Append("\t\t\t\t});");
                break;

            case Language.VB:
                builder.AppendLine("ComposedId(Sub(compId)");
                foreach (var column in columns)
                {
                    builder.AppendLine("\t\t\t\t\tcompId.Property(Function(x) x." + formatter.FormatText(column.Name) + ", Sub(m) m.Column(\"" + column.Name + "\"))");
                }
                builder.AppendLine("\t\t\t\tEnd Sub)");
                break;
            }

            return(builder.ToString());
        }
//Id(x => x.Id, map =>
//{
//    map.Column("ID");
//    map.Generator(Generators.Sequence, g => g.Params(new { sequence = "TABLE_SEQ" }));
//});
        public string IdSequenceMap(Column column, string sequenceName, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            switch (_language)
            {
            case Language.CSharp:
                builder.AppendFormat("Id(x => x.{0}, map => ", formatter.FormatText(column.Name));
                builder.AppendLine();
                builder.AppendLine("\t\t\t\t{");
                builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\");");
                builder.AppendLine("\t\t\t\t\tmap.Generator(Generators.Sequence, g => g.Params(new { sequence = \"" + sequenceName + "\" }));");
                builder.Append("\t\t\t\t});");
                break;

            case Language.VB:
                builder.AppendFormat("Id(Function(x) x.{0}, Sub(map)", formatter.FormatText(column.Name));
                builder.AppendLine();
                builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\")");
                builder.AppendLine("\t\t\t\t\tmap.Generator(Generators.Sequence, Function(g) g.Params(New { sequence = \"" + sequenceName + "\" }))");
                builder.Append("\t\t\t\tEnd Sub)");
                break;
            }

            return(builder.ToString());
        }
        public string CompositeIdMap(IList<Column> columns, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            switch (_language)
            {
                case Language.CSharp:
                    builder.AppendLine("ComposedId(compId =>");
                    builder.AppendLine("\t\t\t\t{");
                    foreach (var column in columns)
                    {
                        builder.AppendLine("\t\t\t\t\tcompId.Property(x => x." + formatter.FormatText(column.Name) + ", m => m.Column(\"" + column.Name + "\"));");
                    }
                    builder.Append("\t\t\t\t});");
                    break;
                case Language.VB:
                    builder.AppendLine("ComposedId(Sub(compId)");
                    foreach (var column in columns)
                    {
                        builder.AppendLine("\t\t\t\t\tcompId.Property(Function(x) x." + formatter.FormatText(column.Name) + ", Sub(m) m.Column(\"" + column.Name + "\"))");
                    }
                    builder.AppendLine("\t\t\t\tEnd Sub)");
                    break;
            }

            return builder.ToString();
        }
Пример #5
0
        public void FormatText_DataIsDbNull_ReturnsEmptyString()
        {
            // setup

            // execute
            string result = _textFormatter.FormatText(DBNull.Value, null);

            // assert
            Assert.AreEqual(String.Empty, result);
        }
Пример #6
0
        public void FormatTextTestCaseOne(List <Word> input)
        {
            var output = textFormatter.FormatText(input);

            Assert.IsTrue(output.StartsWith("1:Go"));
            Assert.IsTrue(output.Contains("2:do\r\n"));
            Assert.IsTrue(output.Contains("2:that\r\n"));
            Assert.IsTrue(output.Contains("1:thing\r\n"));
            Assert.IsTrue(output.Contains("1:you\r\n"));
            Assert.IsTrue(output.Contains("1:so\r\n"));
            Assert.IsTrue(output.EndsWith("1:well\r\n"));
            Assert.AreEqual(output.Count(), 50);
        }
Пример #7
0
//Property(x => x.Name, map =>
//                {
//                    map.Column("NAME");
//                    map.NotNullable(true);
//                    map.Length(200);
//                });
        public string Map(Column column, ITextFormatter formatter)
        {
            var mappedStrBuilder = new StringBuilder();

            mappedStrBuilder.AppendFormat("Property(x => x.{0}, map => ", formatter.FormatText(column.Name));
            mappedStrBuilder.AppendLine();
            mappedStrBuilder.AppendLine("\t\t\t\t{");
            mappedStrBuilder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\");");

            if (!column.IsNullable)
            {
                mappedStrBuilder.AppendLine("\t\t\t\t\tmap.NotNullable(true);");
            }
            if (column.DataLength > 0)
            {
                mappedStrBuilder.AppendLine("\t\t\t\t\tmap.Length(" + column.DataLength + ");");
            }
            if (column.DataPrecision.GetValueOrDefault(0) > 0)
            {
                mappedStrBuilder.AppendLine("\t\t\t\t\tmap.Precision(" + column.DataPrecision + ");");
            }
            if (column.DataScale.GetValueOrDefault(0) > 0)
            {
                mappedStrBuilder.AppendLine("\t\t\t\t\tmap.Scale(" + column.DataScale + ");");
            }
            mappedStrBuilder.Append("\t\t\t\t});");
            return(mappedStrBuilder.ToString());
        }
Пример #8
0
        public string IdMap(Column column, ITextFormatter formatter)
        {
            var mapList      = new List <string>();
            var propertyName = formatter.FormatText(column.Name);

            if (column.Name.ToLower() != propertyName.ToLower() || _applicationPreferences.AlwaysGenerateColumnMapping)
            {
                mapList.Add("map.Column(\"" + column.Name + "\")");
            }
            mapList.Add(column.IsIdentity ? "map.Generator(Generators.Identity)" : "map.Generator(Generators.Assigned)");

            var l = GetLenght(column);

            if (!string.IsNullOrWhiteSpace(l))
            {
                mapList.Add(l);
            }

            // Outer property definition
            string line = FormatCode("Id", propertyName, mapList);

            line += $" // {column.Format} - {column.Description}";

            return(line);
        }
Пример #9
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(ApplicationPreferences appPrefs, string pkColumnName, string pkColumnType, ITextFormatter formatter)
        {
            var    dataTypeMapper   = new DataTypeMapper();
            bool   isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();
            string idGeneratorType  = (isPkTypeIntegral ? "GeneratedBy.Identity()" : "GeneratedBy.Assigned()");

            return(new CodeSnippetStatement(string.Format(TABS + "Id(x => x.{0}).{1}.Column(\"{2}\");",
                                                          formatter.FormatText(pkColumnName),
                                                          idGeneratorType,
                                                          pkColumnName)));
        }
Пример #10
0
        public string IdMap(Column column, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            builder.AppendFormat("Id(x => x.{0}, map => ", formatter.FormatText(column.Name));
            builder.AppendLine();
            builder.AppendLine("\t\t\t\t{");
            builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\");");
            builder.Append("\t\t\t\t});");
            return(builder.ToString());
        }
Пример #11
0
//Id(x => x.Id, map =>
//{
//    map.Column("ID");
//    map.Generator(Generators.Sequence, g => g.Params(new { sequence = "TABLE_SEQ" }));
//});
        public string IdSequenceMap(Column column, string sequenceName, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            builder.AppendFormat("Id(x => x.{0}, map => ", formatter.FormatText(column.Name));
            builder.AppendLine();
            builder.AppendLine("\t\t\t\t{");
            builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\");");
            builder.AppendLine("\t\t\t\t\tmap.Generator(Generators.Sequence, g => g.Params(new { sequence = \"" + sequenceName + "\" }));");
            builder.Append("\t\t\t\t});");
            return(builder.ToString());
        }
Пример #12
0
 public override void WriteLine(IDataReader reader, ColumnMetaData[] columnInfo)
 {
     if (_writer == null)
     {
         throw new InvalidOperationException("Initialise must be called to initialise the report writer");
     }
     for (var i = 0; i < reader.FieldCount; i++)
     {
         _writer.WriteField(_textFormatter.FormatText(reader.GetValue(i), reader.GetFieldType(i)));
     }
     _writer.NextRecord();
 }
        public override void WriteLine(IDataReader reader, ColumnMetaData[] columnInfo)
        {
            if (_writer == null)
            {
                throw new InvalidOperationException("Initialise must be called to initialise the report writer");
            }

            string[] columnValues =
                Enumerable.Range(0, columnInfo.Length)
                .Select(i => _textFormatter.FormatText(reader.GetValue(i), reader.GetFieldType(i)))
                .ToArray();
            _writer.WriteLine(string.Join(this.Delimiter, columnValues));
        }
        private ClassType CreateClass(DatabaseTable table)
        {
            var name = textFormatter.FormatText(table.Name);

            ClassType classType = ClassAlreadyExists(name);

            if (classType != null)
            {
                return(classType);
            }

            classType = diagram.AddClass();
            classType.AccessModifier = AccessModifier.Public;
            classType.Modifier       = ClassModifier.None;
            classType.Name           = name;

            foreach (var column in table.Columns)
            {
                classType.AddProperty().InitFromString(CreateProperty(column, classType));
            }

            return(classType);
        }
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(ApplicationPreferences appPrefs, Table table, string pkColumnName, string propertyName, string pkColumnType, ITextFormatter formatter)
        {
            var  dataTypeMapper   = new DataTypeMapper();
            bool isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();

            string fieldName = FixPropertyWithSameClassName(propertyName, table.Name);

            int pkAlsoFkQty = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumnName) select fk).Count();

            if (pkAlsoFkQty > 0)
            {
                fieldName = fieldName + "Id";
            }

            string snippet = TABS + $".Property(x => x.{formatter.FormatText(fieldName)}).IsPrimaryKey()";

            if (isPkTypeIntegral)
            {
                snippet += Environment.NewLine + TABS + $".Property(x => x.{formatter.FormatText(fieldName)}).IsIdentity()";
            }

            return(new CodeSnippetStatement(snippet));
        }
        public string IdMap(Column column, ITextFormatter formatter)
        {
            var mapList      = new List <string>();
            var propertyName = formatter.FormatText(column.Name);

            if (column.Name.ToLower() != propertyName.ToLower())
            {
                mapList.Add("map.Column(\"" + column.Name + "\")");
            }
            mapList.Add(column.IsIdentity ? "map.Generator(Generators.Identity)" : "map.Generator(Generators.Assigned)");

            // Outer property definition
            return(FormatCode("Id", propertyName, mapList));
        }
        public string IdMap(Column column, ITextFormatter formatter)
        {
            var mapList = new List<string>();
            var propertyName = formatter.FormatText(column.Name);

            if (column.Name.ToLower() != propertyName.ToLower())
            {
                mapList.Add("map.Column(\"" + column.Name + "\")");
            }
            mapList.Add(column.IsIdentity ? "map.Generator(Generators.Identity)" : "map.Generator(Generators.Assigned)");

            // Outer property definition
            return FormatCode("Id", propertyName, mapList);
        }
Пример #18
0
//Property(x => x.Name, map =>
//                {
//                    map.Column("NAME");
//                    map.NotNullable(true);
//                    map.Length(200);
//                    map.Unique(true);
//                });
        public string Map(Column column, ITextFormatter formatter, bool includeLengthAndScale = true)
        {
            var propertyName = formatter.FormatText(column.Name);
            var mapList      = new List <string>();

            // Column
            if (_applicationPreferences.GenerateColumnNameMapping)
            {
                mapList.Add($"map.Column(\"{column.Name}\")");
            }

            // Not Null
            if (!column.IsNullable)
            {
                mapList.Add("map.NotNullable(true)");
            }
            // Unique
            if (column.IsUnique)
            {
                mapList.Add("map.Unique(true)");
            }
            // Length
            if (column.DataLength.GetValueOrDefault() > 0 & includeLengthAndScale)
            {
                mapList.Add("map.Length(" + column.DataLength + ")");
            }
            else
            {
                // Precision
                if (column.DataPrecision.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mapList.Add("map.Precision(" + column.DataPrecision + ")");
                }
                // Scale
                if (column.DataScale.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mapList.Add("map.Scale(" + column.DataScale + ")");
                }
            }

            // m.Access(Accessor.Field);
            if (_applicationPreferences.FieldGenerationConvention == FieldGenerationConvention.Field)
            {
                mapList.Add("map.Access(Accessor.Field)");
            }

            // Outer property definition
            return(FormatCode("Property", propertyName, mapList));
        }
Пример #19
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(ApplicationPreferences appPrefs, Table table, string pkColumnName, string propertyName, string pkColumnType, ITextFormatter formatter)
        {
            var  dataTypeMapper   = new DataTypeMapper();
            bool isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();

            string idGeneratorType = (isPkTypeIntegral ? "GeneratedBy.Identity()" : "GeneratedBy.Assigned()");
            var    fieldName       = FixPropertyWithSameClassName(propertyName, table.Name);
            var    pkAlsoFkQty     = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumnName) select fk).Count();

            //if (pkAlsoFkQty > 0) fieldName = fieldName + "Id";
            return(new CodeSnippetStatement(string.Format(TABS + "Id(x => x.{0}).Column(\"{1}\").{2};",
                                                          formatter.FormatText(fieldName),
                                                          pkColumnName,
                                                          idGeneratorType)));
        }
Пример #20
0
        public void FormatCell_DataTypeIsDateTimeGlobalizationNotConfigured_ReturnsFormattedDateTime()
        {
            // setup
            DateTime    cellValue   = DateTime.Now;
            CultureInfo cultureInfo = CultureInfo.InvariantCulture;

            _textFormatter = new TextFormatter(cultureInfo, null);

            // execute
            string result = _textFormatter.FormatText(cellValue, typeof(DateTime));

            // assert
            string expectedResult = cellValue.ToString(cultureInfo);

            Assert.AreEqual(expectedResult, result);
        }
Пример #21
0
        public void FormatCell_DataTypeIsNumericAndGlobalizationNotConfigured_ReturnsFormattedNumber()
        {
            // setup
            const decimal itemValue   = 123.456789M;
            CultureInfo   cultureInfo = CultureInfo.InvariantCulture;

            _textFormatter = new TextFormatter(null, cultureInfo);

            // execute
            string result = _textFormatter.FormatText(itemValue, typeof(Decimal));

            // assert

            string expectedResult = itemValue.ToString(cultureInfo);

            Assert.AreEqual(expectedResult, result);
        }
Пример #22
0
        public void FormatCell_DataTypeIsSingleAndGlobalizationConfigured_ReturnsFormattedNumber(string cultureName)
        {
            // setup
            const float itemValue   = 123.456789F;
            CultureInfo cultureInfo = CultureInfo.GetCultureInfo(cultureName);

            _textFormatter = new TextFormatter(null, cultureInfo);

            // execute
            string result = _textFormatter.FormatText(itemValue, typeof(Single));

            // assert

            string expectedResult = itemValue.ToString(cultureInfo);

            Assert.AreEqual(expectedResult, result);
        }
Пример #23
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(PrimaryKey primaryKey, Table table, ITextFormatter formatter)
        {
            var  keyPropertyBuilder = new StringBuilder(primaryKey.Columns.Count);
            bool first = true;

            foreach (Column pkColumn in primaryKey.Columns)
            {
                var propertyName = formatter.FormatText(pkColumn.Name);
                var fieldName    = FixPropertyWithSameClassName(propertyName, table.Name);
                var pkAlsoFkQty  = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumn.Name) select fk).Count();
                //if (pkAlsoFkQty > 0) fieldName = fieldName + "Id";
                var tmp = String.Format(".KeyProperty(x => x.{0}, \"{1}\")", fieldName, pkColumn.Name);
                keyPropertyBuilder.Append(first ? tmp : "\n" + TABS + "             " + tmp);
                first = false;
            }

            return(new CodeSnippetStatement(TABS + string.Format("CompositeId(){0};", keyPropertyBuilder)));
        }
Пример #24
0
        public string Map(Column column, ITextFormatter Formatter, bool includeLengthAndScale = true)
        {
            var mappedStrBuilder = new StringBuilder(string.Format("Map(x => x.{0})", Formatter.FormatText(column.Name)));
            mappedStrBuilder.Append(Constants.Dot);
            mappedStrBuilder.Append("Column(\"" + column.Name + "\")");

            if (!column.IsNullable)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Not.Nullable()");
            }

            if (column.IsUnique)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Unique()");
            }

            if (column.DataLength.GetValueOrDefault() > 0 & includeLengthAndScale)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Length(" + column.DataLength + ")");
            }
            else
            {
                if (column.DataPrecision.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mappedStrBuilder.Append(Constants.Dot);
                    mappedStrBuilder.Append("Precision(" + column.DataPrecision + ")");
                }

                if (column.DataScale.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mappedStrBuilder.Append(Constants.Dot);
                    mappedStrBuilder.Append("Scale(" + column.DataScale + ")");
                }
            }

            mappedStrBuilder.Append(Constants.SemiColon);
            return mappedStrBuilder.ToString();
        }
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(PrimaryKey primaryKey, Table table, ITextFormatter formatter)
        {
            var keyPropertyBuilder = new StringBuilder(primaryKey.Columns.Count);
            int count = 1;

            foreach (Column pkColumn in primaryKey.Columns)
            {
                string propertyName = formatter.FormatText(pkColumn.Name);
                string fieldName    = FixPropertyWithSameClassName(propertyName, table.Name);
                int    pkAlsoFkQty  = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumn.Name) select fk).Count();
                if (pkAlsoFkQty > 0)
                {
                    fieldName = fieldName + "Id";
                }
                string tmp = $".Property(x => x.{fieldName}).IsPrimaryKey()";
                keyPropertyBuilder.Append("\n" + TABS + tmp);
                count++;
            }

            return(new CodeSnippetStatement(keyPropertyBuilder.ToString()));
        }
Пример #26
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(IApplicationSettings appPrefs, Table table, string pkColumnName, string propertyName, string pkColumnType, ITextFormatter formatter)
        {
            var  dataTypeMapper   = new DataTypeMapper();
            bool isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();

            string idGeneratorType = (isPkTypeIntegral ? "GeneratedBy.Identity()" : "GeneratedBy.Assigned()");
            var    fieldName       = FixPropertyWithSameClassName(propertyName, table.Name);
            var    pkAlsoFkQty     = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumnName) select fk).Count();

            if (pkAlsoFkQty > 0)
            {
                fieldName = fieldName + "Id";
            }

            string value = TABS + $"Id(x => x.{formatter.FormatText(fieldName)}).{idGeneratorType}";

            if (appPrefs.GenerateColumnNameMapping)
            {
                value += ".Column(\"{pkColumnName}\");";
            }

            return(new CodeSnippetStatement(value));
        }
Пример #27
0
        public void Prepare()
        {
            //var text = "We're going to test our CoreNLP installation!";

            //var properties = new Dictionary<string, string>
            //{
            //    {"annotators", "tokenize, ssplit, pos, lemma"},
            //    {"ner.useSUTime", "0"}
            //};

            //var stanfordCoreNlp = _stanfordCoreNlpFactory.GetStanfordCoreNlp(properties);

            //var annotation = new Annotation(text);
            //stanfordCoreNlp.annotate(annotation);

            //using (var stream = new ByteArrayOutputStream())
            //{
            //    stanfordCoreNlp.prettyPrint(annotation, new PrintWriter(stream));
            //    Console.WriteLine(stream.toString());
            //    stream.close();
            //}

            Console.WriteLine("--- Preparing Data ---");

            var twitterData = Frame.ReadCsv(_appSettings.RawDataPath, hasHeaders: true);

            var text = twitterData.GetColumn <string>("text");

            var processedTweets = _textFormatter.FormatText(text);

            twitterData.AddColumn("processed_tweet", processedTweets);

            twitterData.SaveCsv(_appSettings.ProcessedDataPath);

            Console.WriteLine("--- Data Preparation Complete ---");
        }
Пример #28
0
        public string Map(Column column, ITextFormatter Formatter, bool includeLengthAndScale = true)
        {
            var mappedStrBuilder = new StringBuilder(string.Format("Map(x => x.{0})", Formatter.FormatText(column.Name)));

            mappedStrBuilder.Append(Constants.Dot);
            mappedStrBuilder.Append("Column(\"" + column.Name + "\")");

            if (!column.IsNullable)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Not.Nullable()");
            }

            if (column.IsUnique)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Unique()");
            }

            if (column.DataLength.GetValueOrDefault() > 0 & includeLengthAndScale)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Length(" + column.DataLength + ")");
            }
            else
            {
                if (column.DataPrecision.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mappedStrBuilder.Append(Constants.Dot);
                    mappedStrBuilder.Append("Precision(" + column.DataPrecision + ")");
                }

                if (column.DataScale.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mappedStrBuilder.Append(Constants.Dot);
                    mappedStrBuilder.Append("Scale(" + column.DataScale + ")");
                }
            }


            mappedStrBuilder.Append(Constants.SemiColon);
            return(mappedStrBuilder.ToString());
        }
Пример #29
0
        public void CsvReportWriterTest_CheckFileContents()
        {
            const string delimiter = ",";

            // set up the data reader to return columns
            ColumnMetaData[] headers =
            {
                new ColumnMetaData("Name",    "varchar", 100),
                new ColumnMetaData("Surname", "varchar", 100),
                new ColumnMetaData("Age",     "varchar",  32),
            };
            object[][] data =
            {
                new object[] { "Matt", "Salmon", 41 },
                new object[] { "John", "Doe",    61 },
                new object[] { "Jane", "Smith",  25 }
            };

            IDataReader reader = Substitute.For <IDataReader>();

            reader.FieldCount.Returns(3);
            reader.Read().Returns(true, true, true, false);
            reader.GetValue(0).Returns(data[0][0], data[1][0], data[2][0]);
            reader.GetValue(1).Returns(data[0][1], data[1][1], data[2][1]);
            reader.GetValue(2).Returns(data[0][2], data[1][2], data[2][2]);
            reader.GetFieldType(Arg.Any <int>()).Returns(typeof(String));

            // set up the text formatter to return the value supplied
            _textFormatter.FormatText(Arg.Any <object>(), Arg.Any <Type>()).Returns((c) => { return(c.ArgAt <object>(0).ToString()); });

            // execute
            _reportWriter.Initialise(_filePath, delimiter);
            _reportWriter.WriteHeader(headers.Select(x => x.Name));
            foreach (object[] line in data)
            {
                _reportWriter.WriteLine(reader, headers);
            }
            _reportWriter.Dispose();

            // assert
            Assert.IsTrue(File.Exists(_filePath));
            List <string> lines = File.ReadLines(_filePath).ToList();

            // check that the header is correct
            string expectedHeader = String.Join(delimiter, headers.Select(x => x.Name));

            Assert.AreEqual(expectedHeader, lines[0]);

            // make sure each of the lines is written correctly
            for (int i = 0; i < data.Length; i++)
            {
                object[] line         = data[i];
                string   expectedLine = String.Join(delimiter, data[i]);
                string   actualLine   = lines[i + 1];
                Assert.AreEqual(expectedLine, actualLine);
            }

            // make sure all the data items are formatted
            foreach (object[] line in data)
            {
                foreach (object item in line)
                {
                    _textFormatter.Received(1).FormatText(item, typeof(String));
                }
            }
        }
Пример #30
0
 private static CodeSnippetStatement GetIdMapCodeSnippetStatement(ApplicationPreferences appPrefs, string pkColumnName, string pkColumnType, ITextFormatter formatter)
 {
     var dataTypeMapper = new DataTypeMapper();
     bool isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();
     string idGeneratorType = (isPkTypeIntegral ? "GeneratedBy.Identity()" : "GeneratedBy.Assigned()");
     return new CodeSnippetStatement(string.Format(TABS + "Id(x => x.{0}).{1}.Column(\"{2}\");",
                                                formatter.FormatText(pkColumnName),
                                                idGeneratorType,
                                                pkColumnName));
 }
Пример #31
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(PrimaryKey primaryKey, ITextFormatter formatter)
        {
            var keyPropertyBuilder = new StringBuilder(primaryKey.Columns.Count);

            foreach (Column pkColumn in primaryKey.Columns)
            {
                keyPropertyBuilder.Append(String.Format(".KeyProperty(x => x.{0}, \"{1}\")", formatter.FormatText(pkColumn.Name), pkColumn.Name));
            }

            return(new CodeSnippetStatement(TABS + string.Format("CompositeId(){0};", keyPropertyBuilder)));
        }
Пример #32
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(PrimaryKey primaryKey, ITextFormatter formatter)
        {
            var keyPropertyBuilder = new StringBuilder(primaryKey.Columns.Count);
            foreach (Column pkColumn in primaryKey.Columns)
            {
                keyPropertyBuilder.Append(String.Format(".KeyProperty(x => x.{0}, \"{1}\")", formatter.FormatText(pkColumn.Name), pkColumn.Name));
            }

            return new CodeSnippetStatement(TABS + string.Format("CompositeId(){0};", keyPropertyBuilder));
        }
Пример #33
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(ApplicationPreferences appPrefs, Table table, string pkColumnName, string propertyName, string pkColumnType, ITextFormatter formatter)
        {
            var dataTypeMapper = new DataTypeMapper();
            bool isPkTypeIntegral = (dataTypeMapper.MapFromDBType(appPrefs.ServerType, pkColumnType, null, null, null)).IsTypeIntegral();

            string idGeneratorType = (isPkTypeIntegral ? "GeneratedBy.Identity()" : "GeneratedBy.Assigned()");
            var fieldName = FixPropertyWithSameClassName(propertyName, table.Name);
            var pkAlsoFkQty = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumnName) select fk).Count();
            if (pkAlsoFkQty > 0) fieldName = fieldName + "Id";
             return new CodeSnippetStatement(string.Format(TABS + "Id(x => x.{0}).{1}.Column(\"{2}\");",
                                                       formatter.FormatText(fieldName),
                                                       idGeneratorType,
                                                       pkColumnName));
        }
Пример #34
0
        public string Map(Column column, ITextFormatter Formatter)
        {
            var mappedStrBuilder = new StringBuilder(string.Format("Map(x => x.{0})", Formatter.FormatText(column.Name)));

            mappedStrBuilder.Append(Constants.Dot);
            mappedStrBuilder.Append("Column(\"" + column.Name + "\")");

            if (!column.IsNullable)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Not.Nullable()");
            }

            if (column.DataLength > 0)
            {
                mappedStrBuilder.Append(Constants.Dot);
                mappedStrBuilder.Append("Length(" + column.DataLength + ")");
            }

            mappedStrBuilder.Append(Constants.SemiColon);
            return(mappedStrBuilder.ToString());
        }
        public string Reference(ForeignKey fk, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            if (fk.Columns.Count() == 1)
            {
                var mapList = new List <string>();
                mapList.Add("map.Column(\"" + fk.Columns.First().Name + "\")");

                // PropertyRef - Used with a FK that doesnt map to a primary key on referenced table.
                if (!string.IsNullOrEmpty(fk.Columns.First().ForeignKeyColumnName))
                {
                    mapList.Add("map.PropertyRef(\"" + formatter.FormatText(fk.Columns.First().ForeignKeyColumnName) + "\")");
                }
                if (fk.Columns.First().IsNullable)
                {
                    mapList.Add("map.NotNullable(true)");
                }
                mapList.Add("map.Cascade(Cascade.None)");
                builder.AppendLine(FormatCode("\t\t\tManyToOne", formatter.FormatSingular(fk.UniquePropertyName), mapList));
            }
            else
            {
                // Composite Foreign Key
                // eg ManyToOne(x => x.TesteHeader, map => map.Columns(new Action<IColumnMapper>[] { x => x.Name("HeadIdOne"), x => x.Name("HeadIdTwo") }));
                if (_language == Language.CSharp)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(x => x.{0}, map => map.Columns(new Action<IColumnMapper>[] {{ ",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x => x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }));");
                }
                else if (_language == Language.VB)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(Function(x) x.{0}, Sub(map) map.Columns(new Action<IColumnMapper>[] {{",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }))");
                }
            }
            return(builder.ToString());
        }
        //Property(x => x.Name, map =>
        //                {
        //                    map.Column("NAME");
        //                    map.NotNullable(true);
        //                    map.Length(200);
        //                    map.Unique(true);
        //                });
        public string Map(Column column, ITextFormatter formatter, bool includeLengthAndScale = true)
        {
            var propertyName = formatter.FormatText(column.Name);
            var mapList = new List<string>();

            // Column
            if (column.Name.ToLower() != propertyName.ToLower())
            {
                mapList.Add("map.Column(\"" + column.Name + "\")");
            }
            // Not Null
            if (!column.IsNullable)
            {
                mapList.Add("map.NotNullable(true)");
            }
            // Unique
            if (column.IsUnique)
            {
                mapList.Add("map.Unique(true)");
            }
            // Length
            if (column.DataLength.GetValueOrDefault() > 0 & includeLengthAndScale)
            {
                mapList.Add("map.Length(" + column.DataLength + ")");
            }
            else
            {
                // Precision
                if (column.DataPrecision.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mapList.Add("map.Precision(" + column.DataPrecision + ")");
                }
                // Scale
                if (column.DataScale.GetValueOrDefault(0) > 0 & includeLengthAndScale)
                {
                    mapList.Add("map.Scale(" + column.DataScale + ")");
                }
            }

            // m.Access(Accessor.Field);
            if (_applicationPreferences.FieldGenerationConvention == FieldGenerationConvention.Field)
            {
                mapList.Add("map.Access(Accessor.Field)");
            }

            // Outer property definition
            return FormatCode("Property", propertyName, mapList);
        }
        public string Reference(ForeignKey fk, ITextFormatter formatter)
        {
            var builder = new StringBuilder();
            if (fk.Columns.Count() == 1)
            {
                var mapList = new List<string>();
                mapList.Add("map.Column(\"" + fk.Columns.First().Name + "\")");

                // PropertyRef - Used with a FK that doesnt map to a primary key on referenced table.
                if (!string.IsNullOrEmpty(fk.Columns.First().ForeignKeyColumnName))
                {
                    mapList.Add("map.PropertyRef(\"" + formatter.FormatText(fk.Columns.First().ForeignKeyColumnName) + "\")");
                }
                if (fk.Columns.First().IsNullable)
                {
                    mapList.Add("map.NotNullable(true)");
                }
                mapList.Add("map.Cascade(Cascade.None)");
                builder.AppendLine(FormatCode("\t\t\tManyToOne",formatter.FormatSingular(fk.UniquePropertyName),mapList));
            }
            else
            {
                // Composite Foreign Key
                // eg ManyToOne(x => x.TesteHeader, map => map.Columns(new Action<IColumnMapper>[] { x => x.Name("HeadIdOne"), x => x.Name("HeadIdTwo") }));
                if (_language == Language.CSharp)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(x => x.{0}, map => map.Columns(new Action<IColumnMapper>[] {{ ",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x => x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }));");
                }
                else if (_language == Language.VB)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(Function(x) x.{0}, Sub(map) map.Columns(new Action<IColumnMapper>[] {{",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }))");
                }
            }
            return builder.ToString();
        }
Пример #38
0
//Property(x => x.Name, map =>
//                {
//                    map.Column("NAME");
//                    map.NotNullable(true);
//                    map.Length(200);
//                    map.Unique(true);
//                });
        public string Map(Column column, ITextFormatter formatter, bool includeLengthAndScale = true)
        {
            var propertyName = formatter.FormatText(column.Name);
            var mapList      = new List <string>();

            // Column
            if (column.Name.ToLower() != propertyName.ToLower() || _applicationPreferences.AlwaysGenerateColumnMapping)
            {
                mapList.Add("map.Column(\"" + column.Name + "\")");
            }
            // Not Null
            if (!column.IsNullable)
            {
                mapList.Add("map.NotNullable(true)");
            }
            // Unique
            if (column.IsUnique)
            {
                mapList.Add("map.Unique(true)");
            }

            // Length
            if (_applicationPreferences.IncludeLengthTextOnly)
            {
                string l = GetLenght(column);
                if (!string.IsNullOrWhiteSpace(l))
                {
                    mapList.Add(l);
                }
            }
            else
            {
                if (column.DataLength.GetValueOrDefault() > 0 && includeLengthAndScale)
                {
                    mapList.Add("map.Length(" + column.DataLength + ")");
                }
                else
                {
                    // Precision
                    if (column.DataPrecision.GetValueOrDefault(0) > 0 && includeLengthAndScale)
                    {
                        mapList.Add("map.Precision(" + column.DataPrecision + ")");
                    }
                    // Scale
                    if (column.DataScale.GetValueOrDefault(0) > 0 && includeLengthAndScale)
                    {
                        mapList.Add("map.Scale(" + column.DataScale + ")");
                    }
                }
            }

            // m.Access(Accessor.Field);
            if (_applicationPreferences.FieldGenerationConvention == FieldGenerationConvention.Field)
            {
                mapList.Add("map.Access(Accessor.Field)");
            }

            // Outer property definition
            string line = FormatCode("Property", propertyName, mapList);

            line += $" // {column.Format} - {column.Description}";

            return(line);
        }
Пример #39
0
        private static CodeSnippetStatement GetIdMapCodeSnippetStatement(PrimaryKey primaryKey, Table table, ITextFormatter formatter)
        {
            var keyPropertyBuilder = new StringBuilder(primaryKey.Columns.Count);
            bool first = true;
            foreach (Column pkColumn in primaryKey.Columns)
            {
                var propertyName = formatter.FormatText(pkColumn.Name);
                var fieldName = FixPropertyWithSameClassName(propertyName, table.Name);
                var pkAlsoFkQty = (from fk in table.ForeignKeys.Where(fk => fk.UniquePropertyName == pkColumn.Name) select fk).Count();
                if (pkAlsoFkQty > 0) fieldName = fieldName + "Id";
             var tmp = String.Format(".KeyProperty(x => x.{0}, \"{1}\")",fieldName, pkColumn.Name);
                keyPropertyBuilder.Append(first ? tmp : "\n" + TABS + "             " + tmp);
                first = false;
            }

            return new CodeSnippetStatement(TABS + string.Format("CompositeId(){0};", keyPropertyBuilder));
        }
        //Id(x => x.Id, map =>
        //{
        //    map.Column("ID");
        //    map.Generator(Generators.Sequence, g => g.Params(new { sequence = "TABLE_SEQ" }));
        //});
        public string IdSequenceMap(Column column, string sequenceName, ITextFormatter formatter)
        {
            var builder = new StringBuilder();
            switch (_language)
            {
                case Language.CSharp:
                    builder.AppendFormat("Id(x => x.{0}, map => ", formatter.FormatText(column.Name));
                    builder.AppendLine();
                    builder.AppendLine("\t\t\t\t{");
                    builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\");");
                    builder.AppendLine("\t\t\t\t\tmap.Generator(Generators.Sequence, g => g.Params(new { sequence = \"" + sequenceName + "\" }));");
                    builder.Append("\t\t\t\t});");
                    break;
                case Language.VB:
                    builder.AppendFormat("Id(Function(x) x.{0}, Sub(map)", formatter.FormatText(column.Name));
                    builder.AppendLine();
                    builder.AppendLine("\t\t\t\t\tmap.Column(\"" + column.Name + "\")");
                    builder.AppendLine("\t\t\t\t\tmap.Generator(Generators.Sequence, Function(g) g.Params(New { sequence = \"" + sequenceName + "\" }))");
                    builder.Append("\t\t\t\tEnd Sub)");
                    break;
            }

            return builder.ToString();
        }