private void DeleteFiles(object sender, RoutedEventArgs e)
 {
     //Hreinsum möppur án þess að generate-a file-a
     ViewGenerator.DeleteViews(baseFolderPath.Text + pathToViews.Text);
     ViewModelGenerator.DeleteViewModels(baseFolderPath.Text + pathToViewModels.Text);
     ControllerGenerator.DeleteControllers(baseFolderPath.Text + pathToControllers.Text);
 }
        private void GenerateFiles(object sender, RoutedEventArgs e)
        {
            //Hlöðum inn grunngildum fyrir DatabaseMockup-ið, þetta er til þess að forritið viti hvar gagnagrunnsskilgreiningarnar eru
            DatabaseMockup.InitializeDatabaseMockup(baseFolderPath.Text);

            //Skilgreinum viðvörunina sem á að birtast í öllum auto generated file-um
            string fileAutoGenerationWarningText = "Autogenerated File - Warning: All modifications will be overwritten. File generated at: " + DateTime.UtcNow;

            //Setjum upp background worker til að sjá um að keyra löngu skipunina sem generate-ar kóðann
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += (o, ea) =>
            {
                //no direct interaction with the UI is allowed from this method
                this.Dispatcher.Invoke(() =>
                {
                    //Hreinsum möppur og útbúum file-a
                    ViewGenerator.GenerateViews(baseFolderPath.Text + pathToViews.Text, fileAutoGenerationWarningText);
                    ViewModelGenerator.GenerateViewModels(baseFolderPath.Text + pathToViewModels.Text, fileAutoGenerationWarningText);
                    ControllerGenerator.GenerateControllers(baseFolderPath.Text + pathToControllers.Text, fileAutoGenerationWarningText);
                });
            };
            worker.RunWorkerCompleted += (o, ea) =>
            {
                //work has completed. you can now interact with the UI
                busyIndicator.IsBusy = false;
            };
            //TODO: Þetta er nóg til þess að gera view-ið greyed out á meðan við erum að vinna, en sýnir ekki loading bar-ið sem er þarna á bakvið. Vil finna út af hverju ekki, hefur sennilega eitthvað að gera með þræði
            busyIndicator.IsBusy = true;

            //Setjum worker-inn í gang sem keyrir langa process-ið
            worker.RunWorkerAsync();
        }
 public async Task ApiController()
 {
     TestCode
     (
         ControllerGenerator.GetFileName(await GetSchema()),
         ControllerGenerator.Get(await GetSchema(), AppNamespace)
     );
 }
        public Assembly Build(ODatalizerEndpoint ep)
        {
            var generator = ControllerGenerator.Create(ep);
            var code      = generator.TransformText();

            _logger.LogDebug(ODatalizerLogEvents.ControllerCodeGenerated, code);
            return(Build(code, generator.Namespace));
        }
Example #5
0
 public DryvDynamicControllerTranslator(DryvDynamicControllerRegistration controllerRegistration, ControllerGenerator codeGenerator, IDryvClientServerCallWriter controllerCallWriter, IOptions <DryvDynamicControllerOptions> options, LinkGenerator linkGenerator)
 {
     this.controllerRegistration = controllerRegistration;
     this.codeGenerator          = codeGenerator;
     this.controllerCallWriter   = controllerCallWriter;
     this.options       = options;
     this.linkGenerator = linkGenerator;
 }
Example #6
0
        public void QuotesQuote_ShouldReturnIdOfTheNewQuote_WhenPostedACustomerAndVehicle()
        {
            var controller = New();
            var result     = controller.Quote(ControllerGenerator.OkQuote()).Result;
            var okResult   = result as OkObjectResult;

            Assert.NotNull(okResult);
            Assert.NotNull(okResult.Value);
            Assert.IsType <int>(okResult.Value);
            Assert.NotEqual(default(int), okResult.Value);
        }
Example #7
0
 public QuotesControllerTest()
 {
     _unitOfWorkMock = new Mock <IUnitOfWork>();
     _unitOfWorkMock.Setup(m => m.SaveChangesAsync(default(System.Threading.CancellationToken))).ReturnsAsync(() => 1);
     _customerRepoMock = new Mock <ICustomerRepository>();
     _customerRepoMock.Setup(m => m.Put(It.IsAny <Customer>())).ReturnsAsync(() => new Customer()
     {
         Id = 1
     }.From(ControllerGenerator.OkCustomer()));
     _quoteRepoMock = new Mock <IQuoteRepository>();
     _quoteRepoMock.Setup(m => m.Add(It.IsAny <Quote>()));
 }
Example #8
0
        public JobsApplicationPart(IEnumerable <ControllerEndpoint> controllers)
        {
            ControllerGenerator controllerGenerator = new ControllerGenerator();

            foreach (var controller in controllers)
            {
                var controllerType = typeof(JobsController <, ,>).MakeGenericType(
                    controller.Endpoint,
                    controller.Input,
                    controller.Output);
                controllerGenerator.GenerateControllerType(controllerType, controller.Endpoint);
            }
            _types.AddRange(controllerGenerator.ControllerTypes.Select(x => x.GetTypeInfo()));
        }
Example #9
0
        static void Main()
        {
            Expression <Func <Address, AsyncValidator, SampleOptions, Task <DryvResultMessage> > > f = (a, v, o) => v.ValidateZipCode(a.ZipCode, a.City, o.ZipCodeLength + 1);

            var g = new ControllerGenerator(new OptionsWrapper <DryvDynamicControllerOptions>(new DryvDynamicControllerOptions
            {
                HttpMethod = DryvDynamicControllerMethods.Get
            }));

            var ass = g.CreateControllerAssembly(f.Body as MethodCallExpression, typeof(Address));
            var t   = ass.GetTypes().First();
            var c   = Activator.CreateInstance(t, new AsyncValidator(), new SampleOptions());
            var m   = c.GetType().GetMethods().First(m => !m.Attributes.HasFlag(MethodAttributes.HideBySig));

            //var x = m.Invoke(c, new object[] { "1234", "Doooomcity" });
        }
Example #10
0
 public static Contracts.IControllerGenerator GetControllerGenerator(string solutionName, string contractsFilePath)
 {
     return(ControllerGenerator.Create(SolutionProperties.Create(solutionName, contractsFilePath)));
 }
Example #11
0
        static void Main(string[] args)
        {
            SolutionProperties   solutionProperties   = SolutionProperties.Create();
            EntityGenerator      entityGenerator      = EntityGenerator.Create(solutionProperties);
            DataContextGenerator dataContextGenerator = DataContextGenerator.Create(solutionProperties);
            ControllerGenerator  controllerGenerator  = ControllerGenerator.Create(solutionProperties);
            FactoryGenerator     factoryGenerator     = FactoryGenerator.Create(solutionProperties);
            TransferGenerator    transferGenerator    = TransferGenerator.Create(solutionProperties);

            List <string> lines = new List <string>();

            Console.WriteLine("Create Modules-Entities...");
            lines.Clear();
            lines.AddRange(entityGenerator.CreateModulesEntities());
            WriteAllLines(solutionProperties.EntitiesModulesFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Business-Entities...");
            lines.Clear();
            lines.AddRange(entityGenerator.CreateBusinesssEntities());
            WriteAllLines(solutionProperties.EntitiesBusinessFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Persistence-Entities...");
            lines.Clear();
            lines.AddRange(entityGenerator.CreatePersistenceEntities());
            WriteAllLines(solutionProperties.EntitiesPersistenceFilePath, FormatCSharp(lines));

            Console.WriteLine("Create DataContext-DbContext...");
            lines.Clear();
            lines.AddRange(dataContextGenerator.CreateDbContext());
            WriteAllLines(solutionProperties.DataContextPersistenceFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Persistence-Controllers...");
            lines.Clear();
            lines.AddRange(controllerGenerator.CreatePersistenceControllers());
            WriteAllLines(solutionProperties.ControllersPersistenceFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Business-Controllers...");
            lines.Clear();
            lines.AddRange(controllerGenerator.CreateBusinessControllers());
            WriteAllLines(solutionProperties.ControllersBusinessFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Factory...");
            lines.Clear();
            lines.AddRange(factoryGenerator.CreateLogicFactory());
            WriteAllLines(solutionProperties.LogicFactoryFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Modules-Transfer...");
            lines.Clear();
            lines.AddRange(transferGenerator.CreateModulesTransfers());
            WriteAllLines(solutionProperties.TransferModulesFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Business-Transfer...");
            lines.Clear();
            lines.AddRange(transferGenerator.CreateBusinessTransfers());
            WriteAllLines(solutionProperties.TransferBusinessFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Persistence-Transfer...");
            lines.Clear();
            lines.AddRange(transferGenerator.CreatePersistenceTransfers());
            WriteAllLines(solutionProperties.TransferPersistenceFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Controllers-WebApi...");
            lines.Clear();
            lines.AddRange(controllerGenerator.CreateWebApiControllers());
            WriteAllLines(solutionProperties.WebApiControllersFilePath, FormatCSharp(lines));

            Console.WriteLine("Create Adapters...");
            lines.Clear();
            lines.AddRange(factoryGenerator.CreateAdapterFactory());
            WriteAllLines(solutionProperties.AdaptersFactoryFilePath, FormatCSharp(lines));
        }
        public ActionResult Generate(int appId = 0, string[] selectedTables = null, string selectedTheme = "")
        {
            try
            {
                string      userName    = User.Identity.Name;
                Application application = applicationRepository.FindFirst(ap => ap.Member.username == userName && ap.Id == appId);

                if (application != null)
                {
                    bool connectionSuccess = CheckConnection(application);
                    if (connectionSuccess == true)
                    {
                        DeleteExistsFile(application);

                        //Change Application Theme
                        application.theme_id = GetTheme(selectedTheme);
                        applicationRepository.Edit(application);

                        //Create Application Folders
                        string appMainDirectory = CreateAppDirectories(application);
                        if (!string.IsNullOrEmpty(appMainDirectory))
                        {
                            //Generate Database files
                            string connectionString = Globals.GetSQLServerConnectionString(application);
                            string appName          = application.Name;

                            var myGenerator = new MyGenerator(connectionString, appName, appMainDirectory);

                            //App Tables
                            var tablesType = myGenerator.DatabaseTables.Where(tb => selectedTables.Contains(tb.Name)).ToList();

                            //Create application models and mapping
                            myGenerator.GenerateCode();

                            CreateContextAndConfig(myGenerator.DatabaseTables.ToList(), application, appMainDirectory);

                            //Create application controllers
                            var controllerGenerator = new ControllerGenerator(myGenerator, appName, appMainDirectory);
                            controllerGenerator.Generate(tablesType, connectionString);

                            //Create application navigation menu
                            ApplicationUtilities utilities = new ApplicationUtilities(appMainDirectory, application.Name);
                            utilities.CreateAppNav(tablesType);

                            //Create Application project file
                            string[] controllers = tablesType.Select(tp => tp.Name).ToArray <string>();
                            string[] allModels   = myGenerator.DatabaseTables.Select(tp => tp.Name).ToArray <string>();
                            utilities.CreateProjectFile(controllers, allModels, application.Theme.FileName);

                            //Create Home Controller
                            utilities.CreateControllerHome(tablesType);

                            application.generated = true;
                            applicationRepository.Edit(application);

                            //Zip Application Folder
                            string member_public_id = application.Member.public_id;
                            utilities.ZipApplication(application);

                            //Check the application has folders or not
                            //DirectoryUtility.DeleteFolder(Globals.APP_DATA_PATH + "\\" + member_public_id + "\\" + application.Name + "_" + application.Id);

                            return(View("Success", new MessageView()
                            {
                                Message = "Your application has been generated successfully."
                            }));
                        }
                    }
                    else
                    {
                        return(View("Error", new MessageView()
                        {
                            Message = "An error while connecting to your database."
                        }));
                    }
                }
                ViewBag.appId = application.Id;
                return(View());
            }
            catch (Exception ex)
            {
                return(View("Error", new MessageView()
                {
                    Message = "An error occured while generating the application"
                }));
            }
        }