public void GenerateWithAllNumberColumnName()
        {
            var generatorOptions = new GeneratorOptions();
            var databaseModel    = new DatabaseModel
            {
                DatabaseName  = "TestDatabase",
                DefaultSchema = "dbo"
            };
            var testTable = new DatabaseTable
            {
                Database = databaseModel,
                Name     = "TestTable"
            };

            databaseModel.Tables.Add(testTable);

            var identifierColumn = new DatabaseColumn
            {
                Table      = testTable,
                Name       = "Id",
                IsNullable = false,
                StoreType  = "int"
            };

            testTable.Columns.Add(identifierColumn);

            var numberColumn = new DatabaseColumn
            {
                Table      = testTable,
                Name       = "404",
                IsNullable = true,
                StoreType  = "int"
            };

            testTable.Columns.Add(numberColumn);
            var generator = new ModelGenerator(NullLoggerFactory.Instance);

            var result = generator.Generate(generatorOptions, databaseModel);

            result.ContextClass.Should().Be("TestDatabaseContext");
            result.ContextNamespace.Should().Be("TestDatabase.Data");
            result.Entities.Count.Should().Be(1);

            var firstEntity = result.Entities[0];

            firstEntity.EntityClass.Should().Be("TestTable");
            firstEntity.EntityNamespace.Should().Be("TestDatabase.Data.Entities");
            firstEntity.Properties.Count.Should().Be(2);

            var identifierProperty = firstEntity.Properties.ByColumn("Id");

            identifierProperty.Should().NotBeNull();
            identifierProperty.PropertyName.Should().Be("Id");

            var numberProperty = firstEntity.Properties.ByColumn("404");

            numberProperty.Should().NotBeNull();
            numberProperty.PropertyName.Should().Be("Number404");
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            try
            {
                args = args.Length > 0
                    ? args
                    : new[]
                {
                    "-GenModel",
                    @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\bin\Release\Latitude.WhiteLabel.Models.dll",
                    "Latitude.WhiteLabel.Models",
                    @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\obj\Debug\Temp",
                    "tickbox.web.shared.dto",
                    @"D:\Lat Projects\WL_Main\Latitude.WhiteLabel.Models\obj\Debug\TessellTemp",
                    "latitude.gwt.tessellshared.tmodel",
                };
//                    : new[]
//                    {
//                        "-GenWebApi",
//                        @"D:\Lat Projects\WL_SEO4SME\Latitude.SeoPortal.Ui\war\bin\Latitude.SeoPortal.Ui.dll",
//                        "Latitude.SeoPortal.Ui.Controllers",
//                        @"D:\Lat Projects\WL_SEO4SME\\latitude.seoportal.ui\src\latitude\seoportal\ui\client\remotelogic",
//                        "latitude.seoportal.ui.client.remotelogic",
//                        "Latitude.WhiteLabel.Models",
//                        "tickbox.web.shared.dto"
//                    };


                if (args[0] == "-GenModel")
                {
                    ModelGenerator.GenModel(args);
                }
                else if (args[0] == "-GenWebApi")
                {
                    WebApiGenerator.GenGwt(args);
                }
                else
                {
                    throw new Exception("Unknown generation type: " + args[0]);
                }
            }
            catch (ReflectionTypeLoadException rtle)
            {
                Console.WriteLine(rtle.Message);
                foreach (var e in rtle.LoaderExceptions)
                {
                    Console.WriteLine(e.Message);
                }
                //Console.ReadLine();
                throw;
            }
            catch (Exception e)
            {
//                Debugger.Break();
                Console.WriteLine(e.Message);
                //Console.ReadLine();
                throw;
            }
        }
Ejemplo n.º 3
0
        public void ParentColumnAdded()
        {
            var generator = new ModelGenerator();
            var config    = new CustomConfig();
            var results   = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null);

            Assert.Contains("public Blog Blog { get; set; }", results["Post"]);
        }
Ejemplo n.º 4
0
        public void PrimaryKeyAdded()
        {
            var generator = new ModelGenerator();
            var config    = new CustomConfig();
            var results   = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null);

            Assert.Contains("public System.Int32 PostId { get; set; }", results["Post"]);
        }
Ejemplo n.º 5
0
        public void NamespaceAdded()
        {
            var generator = new ModelGenerator();
            var config    = new CustomConfig();
            var results   = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null);

            Assert.Contains("namespace " + TestNamespace, results.First().Value);
        }
Ejemplo n.º 6
0
        public FoodTest()
        {
            _gameboard = ModelGenerator.GetGeneratedGameboard();
            _snake     = new Snake();
            _food      = new Food();

            _cellProvider = new CellProvider(_gameboard, _snake);
        }
Ejemplo n.º 7
0
        public void CanCallRemoveDocument()
        {
            var context = Provider.GetContext();

            var newId = context.Documents.Add(ModelGenerator.Document(FolderId));

            context.Documents.Remove(newId);
        }
Ejemplo n.º 8
0
        public void CanCallRemoveFolder()
        {
            var context = Provider.GetContext();

            var newId = context.Folders.Add(ModelGenerator.Folder());

            context.Folders.Remove(newId);
        }
Ejemplo n.º 9
0
        // called before every test
        public SnakeTest()
        {
            var gameboard = ModelGenerator.GetGeneratedGameboard();

            _snake = new Snake();

            _cellProvider = new CellProvider(gameboard, _snake);
        }
Ejemplo n.º 10
0
        public void Bench(double amount, double fee, double minimum)
        {
            var modelGenerator = new ModelGenerator();

            var model = modelGenerator.GetModels(amount, new ModelSettings {
                Fee = fee, MinPayment = minimum
            });
        }
Ejemplo n.º 11
0
        public void CollectionColumnInitStatementAdded()
        {
            var generator = new ModelGenerator();
            var config    = new CustomConfig();
            var results   = generator.GenerateFiles(config.Maps, this.MakeSchema(config), TestNamespace, null);

            Assert.Contains("this.Comments = new List<Comment>();", results["Post"]);
        }
 private void GetModelGenerator()
 {
     modelGenerator = GameObject.Find("ModelGenerator");
     if (modelGenerator != null)
     {
         modelGeneratorScript = modelGenerator.GetComponent <ModelGenerator>();
     }
 }
Ejemplo n.º 13
0
        static void Main()
        {
            xmile          xmile       = XMILEReader.ReadModel(@"../../Generated/EpidemicNode.xml");
            IModelSource   modelSource = new XMILEWrapper(xmile);
            ModelGenerator mg          = new ModelGenerator(modelSource);
            string         @class      = mg.Class;

            File.WriteAllText(@"../../Generated/EpidemicNode.cs", @class);
        }
        public void DerivedSchema()
        {
            var generator = new ModelGenerator();
            var schema = new JObject();
            const bool flatten = false;
            generator.EmitType(typeof(DerivedClass), ref schema, flatten);

            Console.WriteLine(schema.ToString());
        }
Ejemplo n.º 15
0
        public void CanCallAddFolder()
        {
            var context = Provider.GetContext();

            var folder = ModelGenerator.Folder();

            var newId = context.Folders.Add(folder);

            Assert.AreNotEqual(0, newId);
        }
Ejemplo n.º 16
0
        public void CanCallAddDocument()
        {
            var context = Provider.GetContext();

            var document = ModelGenerator.Document(FolderId);

            var newId = context.Documents.Add(document);

            Assert.AreNotEqual(0, newId);
        }
Ejemplo n.º 17
0
 private void button2_Click(object sender, EventArgs e)
 {
     ModelGenerator.GenerateModel(DB.GetRows("Select * from customers").ToTable(), "Customer");
     ModelGenerator.GenerateModel(DB.GetRows("Select * from categories").ToTable(), "Category", true);
     ModelGenerator.GenerateModel(DB.GetRows("Select * from employees").ToTable(), "Employee", true);
     ModelGenerator.GenerateModel(DB.GetRows("Select * from orders").ToTable(), "Order", true);
     ModelGenerator.GenerateModel(DB.GetRows("Select * from Products").ToTable(), "Product", true);
     ModelGenerator.GenerateModel(DB.GetRows("Select * from Shippers").ToTable(), "Shipper", true);
     MessageBox.Show("Done");
 }
Ejemplo n.º 18
0
        public void ModelGeneration_Class_Dependency()
        {
            // create syntax tree
            var personSyntaxTree = CSharpSyntaxTree.ParseText(@"
using System;
public class Person
{
    public long Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public Address Address { get; set; }
}");

            var addressSyntaxTree = CSharpSyntaxTree.ParseText(@"public class Address
{
    public int Id { get; set; }
    public string Country { get; set; }
    public string City { get; set; }
    public string PostalCode { get; set; }
    public string Street { get; set; }
    public string HouseNumber { get; set; }
}");

            // create compilation
            var compilation = RoslynTestHelpers.CreateTestCompilation(new[] { personSyntaxTree, addressSyntaxTree });

            // analyze
            var context  = new TestAnalysisContext(compilation);
            var analyzer = new ModelAnalyzer(context);

            var csClassModel = analyzer.AnalyzeClassSymbol(RoslynTestHelpers.GetClassSymbol(compilation, personSyntaxTree));

            // convert
            var converter    = new ModelConverter();
            var tsClassModel = converter.ConvertClass(csClassModel);

            // generate
            var generator = new ModelGenerator();
            var generated = generator.GenerateClass(tsClassModel, false);

            // assert
            var expected = @"import { Address } from './address.model';

export class Person {
	id: number;
	firstName: string;
	lastName: string;
	dateOfBirth: Date;
	address: Address;
}
";

            Assert.AreEqual(expected, generated);
        }
Ejemplo n.º 19
0
        private async Task <bool> Deploy(
            Settings settings,
            DryRunLevel?dryRun,
            string outputFilename,
            bool allowDataLoos,
            bool protectStack
            )
        {
            var stopwatch = Stopwatch.StartNew();

            // read input file
            Console.WriteLine();
            Console.WriteLine($"Processing module: {settings.ModuleFileName}");
            var source = await File.ReadAllTextAsync(settings.ModuleFileName);

            // preprocess file
            var tokenStream = new ModelPreprocessor(settings).Preprocess(source);

            if (ErrorCount > 0)
            {
                return(false);
            }

            // parse yaml module file
            var module = new ModelParser(settings).Parse(tokenStream, skipCompile: dryRun == DryRunLevel.CloudFormation);

            if (ErrorCount > 0)
            {
                return(false);
            }

            // generate cloudformation template
            var stack = new ModelGenerator().Generate(module);

            if (ErrorCount > 0)
            {
                return(false);
            }

            // serialize stack to disk
            var result     = true;
            var outputPath = Path.Combine(settings.WorkingDirectory, outputFilename);
            var template   = new JsonStackSerializer().Serialize(stack);

            File.WriteAllText(outputPath, template);
            if (dryRun == null)
            {
                result = await new StackUpdater().Deploy(module, template, allowDataLoos, protectStack);
                try {
                    File.Delete(outputPath);
                } catch { }
            }
            Console.WriteLine($"Done (duration: {stopwatch.Elapsed:c})");
            return(result);
        }
        public ActionResult Overview(int?id)
        {
            if (id == null)
            {
                return(View("Error", null));
            }

            var model = ModelGenerator.GenerateHospitalDataModel(id);

            return(View(model));
        }
Ejemplo n.º 21
0
        public async Task <IActionResult> Edit(Guid?id)
        {
            if (id != null)
            {
                var test = await testRepository.FirstOrDefaultAsync(x => x.Id == id);

                return(View(new TestModel(test)));
            }

            return(View(ModelGenerator.GenerateTestModel()));
        }
Ejemplo n.º 22
0
        public void CanCallSaveFolder()
        {
            var context = Provider.GetContext();

            // Get existing item
            var newId  = context.Folders.Add(ModelGenerator.Folder());
            var folder = context.Folders.GetItem(newId);

            // Save it
            context.Folders.Save(folder);
        }
Ejemplo n.º 23
0
        public void CanCallSaveDocument()
        {
            var context = Provider.GetContext();

            // Get existing item
            var newId    = context.Documents.Add(ModelGenerator.Document(FolderId));
            var document = context.Documents.GetItem(newId);

            // Save it
            context.Documents.Save(document);
        }
Ejemplo n.º 24
0
        public IActionResult Get(int id)
        {
            var groups       = ModelGenerator.GenerateGroupList();
            var matchedGroup = groups.FirstOrDefault(s => s.Id == id);

            if (matchedGroup != null)
            {
                return(Ok(matchedGroup));
            }

            return(NotFound());
        }
Ejemplo n.º 25
0
        public Post GeneratePost()
        {
            Logger.LogInformation($"Starting {Type} generation.");
            var model    = ModelGenerator.GenerateModel();
            var postText = PostGenerator.GeneratePostText(model);

            Logger.LogInformation($"Finished {Type} generation.");
            return(new Post()
            {
                Content = postText, Type = Models.Options.PostTypes.AdmissionsByAge
            });
        }
        public static string GetActual(Type typeToTest, string expected, bool flatten, JObject schema = null)
        {
            var converter = new ModelGenerator();
            var target = new JObject();

            converter.AssignSchemaType(typeToTest, ref target, ref schema, flatten);

            var actual = target.ToString();
            Console.WriteLine("type:{0}\nexpected:\n{1}", typeToTest.FullName, expected);
            Console.WriteLine("actual :\n{0}", actual);
            return actual;
        }
Ejemplo n.º 27
0
        public Post GeneratePost()
        {
            Logger.LogInformation($"Starting {Type} generation.");
            var model    = ModelGenerator.GenerateModel();
            var postText = PostGenerator.GeneratePostText(model);

            Logger.LogInformation($"Starting {Type} generation.");
            return(new Post()
            {
                Content = postText, Type = Type
            });
        }
Ejemplo n.º 28
0
        public void CanCallGetDocument()
        {
            var context = Provider.GetContext();

            // Add random document and add to get its DB id
            var document = ModelGenerator.Document(FolderId);
            var newId    = context.Documents.Add(document);

            // See if that id will return an object
            var savedDocument = context.Documents.GetItem(newId);

            Assert.IsNotNull(savedDocument);
        }
Ejemplo n.º 29
0
        public void CanCallGetFolder()
        {
            var context = Provider.GetContext();

            // Add random Folder and add to get its DB id
            var folder = ModelGenerator.Folder();
            var newId  = context.Folders.Add(folder);

            // See if that id will return an object
            var savedFolder = context.Folders.GetItem(newId);

            Assert.IsNotNull(savedFolder);
        }
Ejemplo n.º 30
0
        public void NullableProperties()
        {
            // NOTE:
            //
            // This test doesn't work due to apparent limitations of
            // the DataWrapper class an perhaps .NET itself.  The problem
            // is related to assigning a nullable Enum value.  This
            // fails even though I explicitly cast the value to (MyEnum1?).
            //
            // I think the problem is related to the JIT compiler doing some
            // magic here and effectively stripping out the cast and
            // just passing the non-nullable enum value and then
            // [DataWrapper] fails when dynamically assigning the value
            // to the property because the value is no longer a (MyEnum1?).
            //
            // I have verified this manually when using the generated
            // model classes directly.

            // Verify that we handle nullable property types correctly.

            var settings = new ModelGeneratorSettings()
            {
                SourceNamespace = typeof(Test_UxDataModel).Namespace,
                UxFramework     = UxFrameworks.Xaml
            };

            var generator = new ModelGenerator(settings);
            var output    = generator.Generate(Assembly.GetExecutingAssembly());

            Assert.False(output.HasErrors);

            var assemblyStream = ModelGenerator.Compile(output.SourceCode, "test-assembly", references => ModelGenTestHelper.ReferenceHandler(references));

            using (var context = new AssemblyContext("Neon.ModelGen.Output", assemblyStream))
            {
                var data = context.CreateDataWrapper <NullableProperties>();
                Assert.Equal("{\"Bool\":null,\"Int\":null,\"Enum\":null}", data.ToString());

                data = context.CreateDataWrapperFrom <NullableProperties>(data.ToString());
                Assert.Equal("{\"Bool\":null,\"Int\":null,\"Enum\":null}", data.ToString());

                data["Bool"] = true;
                data["Int"]  = 100;
                data["Enum"] = (MyEnum1?)MyEnum1.Two;   // This throws an exception

                var s = data.ToString();

                Assert.Equal("", data.ToString());
            }
        }
Ejemplo n.º 31
0
        public void CanCorrectlyAddFolder()
        {
            var context = Provider.GetContext();

            // Add random Folder and add to get its DB id
            var folder = ModelGenerator.Folder();

            folder.Id = context.Folders.Add(folder);

            // See if saved Folder's values are correct
            var savedFolder = context.Folders.GetItem(folder.Id);

            ModelAssert.AreEqual(folder, savedFolder);
        }
Ejemplo n.º 32
0
        public void CanCorrectlyAddDocument()
        {
            var context = Provider.GetContext();

            // Add random document and add to get its DB id
            var document = ModelGenerator.Document(FolderId);

            document.Id = context.Documents.Add(document);

            // See if saved document's values are correct
            var savedDocument = context.Documents.GetItem(document.Id);

            ModelAssert.AreEqual(document, savedDocument);
        }