public void TestScaffoldingWebApiFromOnlineStoreDatabase()
        {
            // Import database
            var database = SqlServerDatabaseFactory
                           .Import("server=(local);database=OnlineStore;integrated security=yes;", "dbo.sysdiagrams");

            // Create instance of Entity Framework Core Project
            var entityFrameworkProject = new EntityFrameworkCoreProject
            {
                Name            = "OnlineStore.Core",
                Database        = database,
                OutputDirectory = "C:\\Temp\\CatFactory.AspNetCore\\OnlineStore.Core"
            };

            // Apply settings for project
            entityFrameworkProject.GlobalSelection(settings =>
            {
                settings.ForceOverwrite   = true;
                settings.ConcurrencyToken = "Timestamp";
                settings.AuditEntity      = new AuditEntity
                {
                    CreationUserColumnName       = "CreationUser",
                    CreationDateTimeColumnName   = "CreationDateTime",
                    LastUpdateUserColumnName     = "LastUpdateUser",
                    LastUpdateDateTimeColumnName = "LastUpdateDateTime"
                };
            });

            entityFrameworkProject.Selection("Sales.OrderHeader", settings => settings.EntitiesWithDataContracts = true);

            // Build features for project, group all entities by schema into a feature
            entityFrameworkProject.BuildFeatures();

            // Scaffolding =^^=
            entityFrameworkProject
            .ScaffoldEntityLayer()
            .ScaffoldDataLayer();

            var aspNetCoreProject = entityFrameworkProject
                                    .CreateAspNetCoreProject("OnlineStore.WebAPI", "C:\\Temp\\CatFactory.AspNetCore\\OnlineStore.WebAPI");

            aspNetCoreProject.GlobalSelection(settings => settings.ForceOverwrite = true);

            // Add event handlers to before and after of scaffold

            aspNetCoreProject.ScaffoldingDefinition += (source, args) =>
            {
                // Add code to perform operations with code builder instance before to create code file
            };

            aspNetCoreProject.ScaffoldedDefinition += (source, args) =>
            {
                // Add code to perform operations after of create code file
            };

            aspNetCoreProject.ScaffoldAspNetCore();
        }
Ejemplo n.º 2
0
        static void B()
        {
            // Import database
            var factory = new SqlServerDatabaseFactory()
            {
                ConnectionString = key
            };
            var database = factory.Import();
            // Create instance of Entity Framework Core Project
            var entityFrameworkProject = new EntityFrameworkCoreProject()
            {
                Name            = "OnLineStore.Core",
                Database        = database,
                OutputDirectory = @"./"
            };

            // Apply settings for project
            entityFrameworkProject.GlobalSelection(settings => {
                settings.ForceOverwrite   = true;
                settings.ConcurrencyToken = "Timestamp";
                settings.Validate();
                settings.EnableDataBindings = true;
                settings.AuditEntity        = new AuditEntity {
                    CreationUserColumnName       = "CreationUser",
                    CreationDateTimeColumnName   = "CreationDateTime",
                    LastUpdateUserColumnName     = "LastUpdateUser",
                    LastUpdateDateTimeColumnName = "LastUpdateDateTime"
                };
            });

            entityFrameworkProject.Select("Sales.OrderHeader", settings => settings.EntitiesWithDataContracts = true);

            // Build features for project, group all entities by schema into a feature
            entityFrameworkProject.BuildFeatures();

            // Scaffolding =^^=
            entityFrameworkProject
            .ScaffoldEntityLayer()
            .ScaffoldDataLayer();

            var aspNetCoreProject = entityFrameworkProject
                                    .CreateAspNetCoreProject("OnlineStoreWithFluentValidation.WebAPI", @"./", entityFrameworkProject.Database);

            aspNetCoreProject.GlobalSelection(settings => {
                settings.ForceOverwrite = true;
            });

            aspNetCoreProject.Select("Sales.OrderDetail", settings => {
                settings.ConcurrencyToken          = "123";
                settings.EntitiesWithDataContracts = true;
                settings.Validate();
            });

            aspNetCoreProject
            .ScaffoldAspNetCore();
        }