Exemplo n.º 1
0
        private static void GenSln(List <PrjInfo> thisLevel, int level)
        {
            var prjs = thisLevel.Where(item => !string.IsNullOrEmpty(item.PrjFilePath)).ToList();

            if (prjs.Count == 0)
            {
                return;
            }
            var generator = new SolutionGenerator(new ConsoleLogger());
            var slnOpt    = new SolutionOptions();

            slnOpt.SolutionFolderPath    = SlnPath + "buildSln" + level.ToString().PadLeft(3, '0') + ".sln";
            slnOpt.SolutionFileVersion   = SolutionFileVersion.VisualStudio2012;
            slnOpt.ProjectRootFolderPath = prjs.FirstOrDefault().PrjFilePath;
            generator.GenerateSolution(slnOpt.SolutionFolderPath, slnOpt);

            prjs.RemoveAt(0);

            foreach (var prj in prjs)
            {
                slnOpt.UpdateMode            = SolutionUpdateMode.Add;
                slnOpt.ProjectRootFolderPath = prj.PrjFilePath;
                generator.GenerateSolution(slnOpt.SolutionFolderPath, slnOpt);
            }
        }
        public GenerateProjectResponse Generate([FromBody] GenerateProjectRequest generateProjectRequest)
        {
            if (!generateProjectRequest.IsValid(out string validationMessage))
            {
                throw new CustomApiException(validationMessage, HttpStatusCode.BadRequest);
            }

            CloneOptions cloneOptions = new CloneOptions
            {
                BranchName          = generateProjectRequest.BranchName,
                CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
                {
                    Username = generateProjectRequest.UserName,
                    Password = generateProjectRequest.Password
                }
            };

            SolutionGenerator solutionGenerater = new SolutionGenerator();
            string            token             = solutionGenerater.Generate(generateProjectRequest.RepositoryLink, generateProjectRequest.RenamePairs, cloneOptions);

            return(new GenerateProjectResponse()
            {
                Token = token
            });
        }
Exemplo n.º 3
0
        private void buttonPreview_Click(object sender, EventArgs e)
        {
            try
            {
                string message;

                SolutionOptions   options   = CreateOptionsFromControls();
                SolutionGenerator generator = new SolutionGenerator(new StatusLogger(this.labelStatus));
                var solution = generator.GenerateSolution(this.textSolutionFile.Text, options, true);
                this.labelStatus.Text = string.Empty;

                if (generator.NumberOfProjectsFound == 0)
                {
                    message = string.Format("No project files found in the specified location\r\nSolution file is not generated");
                    MessageBox.Show(message, "Execution Summary", MessageBoxButtons.OK);
                }
                else
                {
                    var previewForm = new PreviewForm();
                    previewForm.Solution     = solution;
                    previewForm.SolutionFile = this.textSolutionFile.Text;
                    previewForm.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 4
0
        protected SolutionGenerator GetGenerator()
        {
            if (solution?.Solution != null)
            {
                return(solution);
            }

            solution = SolutionGenerator.FromPath(SolutionConfigFile.FullName);
            return(solution);
        }
Exemplo n.º 5
0
        private async void solveButton_Click(object sender, EventArgs e)
        {
            ingredientsView.Enabled = false;
            outputView.Enabled      = false;
            solveButton.Enabled     = false;
            expandCheckbox.Enabled  = false;
            try
            {
                var grader = new SolutionGrader();

                var pipe         = _library.Buildings.Where((b) => b.Name == "pipe").First();
                var pipeToGround = _library.Buildings.Where((b) => b.Name == "pipe-to-ground").First();

                var router = new FluidRouter(pipeToGround, pipe, grader);

                var belt              = _library.Buildings.Where((b) => b.Name == "basic-transport-belt").First();
                var beltGroundNormal  = _library.Buildings.Where((b) => b.Name == "basic-transport-belt-to-ground").First();
                var beltGroundFast    = _library.Buildings.Where((b) => b.Name == "fast-transport-belt-to-ground").First();
                var beltGroundExpress = _library.Buildings.Where((b) => b.Name == "express-transport-belt-to-ground").First();
                var fastInserter      = _library.Buildings.Where((b) => b.Name == "fast-inserter").First();
                var inserter          = _library.Buildings.Where((b) => b.Name == "basic-inserter").First();
                var longInserter      = _library.Buildings.Where((b) => b.Name == "long-handed-inserter").First();
                var splitter          = _library.Buildings.Where((b) => b.Name == "basic-splitter").First();

                var solid = new SolidRouter(belt, beltGroundNormal, beltGroundFast, beltGroundExpress, inserter, longInserter, fastInserter, splitter, grader);

                _generator             = new SolutionGenerator(_recipe);
                _generator.SolidRouter = solid;
                _generator.FluidRouter = router;
            }
            catch (Exception ex)
            {
                resultView.Text = ex.Message;
            }

            ComputationLoop();

            while (true)
            {
                await Task.Delay(1000);

                bestCostLabel.Text = "Cost: " + _generator.LowestCost.ToString();
                if (_generator.BestState != null)
                {
                    solutionImage.Image = _generator.BestState.Draw();
                }
                if (_generator.Preview != null)
                {
                    previewImage.Image = _generator.Preview.Draw();
                }
            }
        }
Exemplo n.º 6
0
        public static void GenSln(List <PrjInfo> thisLevel, int level, string slnDir = null)
        {
            if (IsNullOrEmpty(slnDir))
            {
                slnDir = BomBuildOption.SlnPath;
            }
            if (!Directory.Exists(slnDir))
            {
                Directory.CreateDirectory(slnDir);
            }

            var prjs = thisLevel.Where(item => !IsNullOrEmpty(item.PrjFilePath)).ToList();

            if (prjs.Count == 0)
            {
                return;
            }


            var generator = new SolutionGenerator(new ConsoleLogger());
            var firstPrj  = prjs.First();

            var slnFilePath = Path.Combine(slnDir,
                                           $"{firstPrj.BuildStage}BuildSln{level.ToString().PadLeft(3, '0')}");

            //创建一个空解决方案,否则第一个项目的相对路径会出错
            using (var fs = File.Create(slnFilePath))
            {
            }


            var slnOpt = new SolutionOptions
            {
                SolutionFolderPath    = slnFilePath,
                SolutionFileVersion   = SolutionFileVersion.VisualStudio2012,
                ProjectRootFolderPath = firstPrj.PrjFilePath
            };

            generator.GenerateSolution(slnOpt.SolutionFolderPath, slnOpt);

            prjs.RemoveAt(0);

            foreach (var prj in prjs)
            {
                slnOpt.UpdateMode            = SolutionUpdateMode.Add;
                slnOpt.ProjectRootFolderPath = prj.PrjFilePath;
                generator.GenerateSolution(slnOpt.SolutionFolderPath, slnOpt);
            }
            //添加build所需的Section

            AdjustBuildSln(slnOpt.SolutionFolderPath, prjs);
        }
Exemplo n.º 7
0
        private void buttonExecute_Click(object sender, EventArgs e)
        {
            try
            {
                string message;

                if (File.Exists(this.textSolutionFile.Text))
                {
                    var fileAttributes = File.GetAttributes(this.textSolutionFile.Text);
                    if ((fileAttributes & FileAttributes.ReadOnly) != 0)
                    {
                        message = "The solution file is read only\r\nDo you want to overwrite it?";
                        if (MessageBox.Show(message, "Confirm Overwrite", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            File.SetAttributes(this.textSolutionFile.Text, fileAttributes ^ FileAttributes.ReadOnly);
                        }
                        else
                        {
                            return;
                        }
                    }
                }

                SolutionOptions   options   = CreateOptionsFromControls();
                SolutionGenerator generator = new SolutionGenerator(new StatusLogger(this.labelStatus));
                generator.GenerateSolution(this.textSolutionFile.Text, options);
                this.labelStatus.Text = string.Empty;

                if (generator.NumberOfProjectsFound > 0)
                {
                    message = string.Format("Solution file is generated\r\n\r\n{0} projects found\r\n{1} projects skipped\r\n{2} projects added\r\n{3} projects removed",
                                            generator.NumberOfProjectsFound, generator.NumberOfProjectsSkipped, generator.NumberOfProjectsAdded, generator.NumberOfProjectsRemoved);
                }
                else
                {
                    message = string.Format("No project files found in the specified location\r\nSolution file is not generated");
                }

                if (this.checkSaveSettings.Checked)
                {
                    SaveSettings(options, Path.ChangeExtension(this.textSolutionFile.Text, SolutionOptions.FileExtension));
                }

                MessageBox.Show(message, "Execution Summary", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 8
0
        public void RouteSink()
        {
            SolidRouter r = new SolidRouter(
                new Building("belt"),
                new Building("beltground3"),
                new Building("beltground2"),
                new Building("beltground1"),

                new Building("inserter1"),
                new Building("inserter2"),
                new Building("longInserter"),
                new Building("basic-splitter"),

                new SolutionGrader()
                );

            Building assembler = new Building("assembler");

            assembler.Size            = new Vector2(3, 3);
            assembler.IngredientCount = 3;
            assembler.ProductionSpeed = 1;
            assembler.AddCraftingCategory("test");
            Recipe recipe = new Recipe("dummy");

            recipe.CraftingCategory = "test";
            Item item = new Item("dummy");

            Library l = new Library();

            l.AddBuilding(assembler);
            l.AddItem(item);
            l.AddRecipe(recipe);

            l.Initialize();

            Searchspace s        = new Searchspace(new Vector2(13, 10));
            var         physical = new ProductionBuilding(recipe, 1, assembler, new Vector2(7, 3), BuildingRotation.North);

            s = s.AddComponent(physical);

            var dict = new Dictionary <ProductionStep, Tuple <Vector2, BuildingRotation> >();

            dict.Add(physical, new Tuple <Vector2, BuildingRotation>(physical.Position, physical.Rotation));
            var param = new SolutionParameters(13, 10, ImmutableDictionary <SourceStep, Vector2> .Empty, ImmutableDictionary <SinkStep, Vector2> .Empty, dict.ToImmutableDictionary(), ImmutableList <Tuple <IStep, Item, bool> > .Empty);

            var dests = SolutionGenerator.BuildingToPlaceables(physical, param);

            var result = r.Route(new ItemAmount(item, 0.01), s, dests, new RoutingCoordinate[] { new RoutingCoordinate(new Vector2(7, 9), RoutingCoordinate.CoordinateType.Belt, BuildingRotation.South) });
        }
        public FileContentResult Download([FromBody] DownloadProjectRequest request)
        {
            if (!request.IsValid(out string validationMessage))
            {
                throw new CustomApiException(validationMessage, HttpStatusCode.BadRequest);
            }

            SolutionGenerator solutionGenerater = new SolutionGenerator();

            byte[] zipBytes = solutionGenerater.Download(request.Token);

            return(new FileContentResult(zipBytes, CONTENT_TYPE)
            {
                FileDownloadName = request.Token
            });
        }
        public static void Execute(DirectoryInfo outputDirectory, Configuration configuration)
        {
            if (!outputDirectory.Exists)
            {
                outputDirectory.Create();
            }
            else
            {
                outputDirectory.Delete(true);
                outputDirectory.Create();
            }

            SolutionGenerator.Execute(outputDirectory, configuration);

            foreach (var project in configuration.Projects)
            {
                ProjectGenerator.Execute(outputDirectory, configuration, project);
            }
        }
Exemplo n.º 11
0
        private ErrorCode GenerateSolution()
        {
            if (SkipGenerateCommand)
            {
                return(ErrorCode.Success);
            }

            Log.Debug("Config = " + SolutionConfigFile.FullName);
            Log.Debug("Define Symbols =");
            if (defineSymbols.Count > 0)
            {
                Log.IndentedCollection(defineSymbols, Log.Debug);
            }
            Log.Debug("Variables =");
            if (Variables.Count > 0)
            {
                Log.IndentedCollection(Variables, kvp => $"{kvp.Key} => {kvp.Value}", Log.Debug);
            }

            try
            {
                solution = GetGenerator();
                solution.GenerateSolution(
                    MasterConfiguration,
                    defineSymbols.ToArray(),
                    PropertyOverrides.ToArray(),
                    string.IsNullOrEmpty(BuildConfiguration) ? null : new[] { BuildConfiguration });

                // If MasterConfiguration was null or empty, the generator will select a default.
                MasterConfiguration = solution.MasterConfiguration;
            }
            catch (Exception ex)
            {
                Log.Error("{0}", ex.ToString());
                return(ErrorCode.GeneratorException);
            }

            File.WriteAllText(Path.Combine(solution.Solution.OutputDir, solution.Solution.Name + ".sln.config"),
                              "MasterConfiguration=" + MasterConfiguration);

            return(ErrorCode.Success);
        }
Exemplo n.º 12
0
        private static void Main(string[] args)
        {
            var userGeneratedNumbers = new List <int>
            {
                1,
                3,
                //5,
                //10,
                //25,
                //100
            };

            var cecilGeneratedNumber = NumberGenerator.GetRandomNumber();

            DisplayStartTheClockMessage(userGeneratedNumbers, cecilGeneratedNumber);

            var possibleSolutions = SolutionGenerator.GetSolution(userGeneratedNumbers, cecilGeneratedNumber);

            DisplaySolutions(possibleSolutions);
        }
Exemplo n.º 13
0
        public Form1()
        {
            InitializeComponent();
            SolutionGenerator solution = new SolutionGenerator("FormGeneratorSolution");

            ProjectGenerator project1 = new ProjectGenerator("Project1");
            // Form creation
            FormGenerator         form1         = new FormGenerator("generateForm", project1.Name, "");
            FormDesignerGenerator form1Designer = new FormDesignerGenerator(form1);
            // Program creation
            ProgramGenerator program = new ProgramGenerator(project1.Name, form1);

            // Add to project and solution
            project1.Add(form1);
            project1.Add(form1Designer);
            project1.Add(program);
            solution.Add(project1);

            solution.ExportToFile("Output");
        }
Exemplo n.º 14
0
        private static void GenerateSolutionFile(CommandLineOptions options)
        {
            if (!Directory.Exists(options.ProjectRootFolderPath))
            {
                throw new SolutionFileGenerationException("Invalid directory: " + options.ProjectRootFolderPath);
            }
            else if (File.Exists(options.SolutionFile) && ((File.GetAttributes(options.SolutionFile) & FileAttributes.ReadOnly) != 0) && !options.OverwriteReadOnlyFile)
            {
                throw new SolutionFileGenerationException("Solution file is read-only. Use /r option to overwrite read-only solution file.");
            }
            else
            {
                if (File.Exists(options.SolutionFile))
                {
                    var fileAttributes = File.GetAttributes(options.SolutionFile);
                    if ((fileAttributes & FileAttributes.ReadOnly) != 0 && options.OverwriteReadOnlyFile)
                    {
                        File.SetAttributes(options.SolutionFile, fileAttributes ^ FileAttributes.ReadOnly);
                    }
                }

                SolutionGenerator generator = new SolutionGenerator(new ConsoleLogger());
                generator.GenerateSolution(options.SolutionFile, options);

                string message;
                if (generator.NumberOfProjectsFound > 0)
                {
                    message = string.Format("Solution file is generated\r\n{0} projects found\r\n{1} projects skipped\r\n{2} projects added\r\n{3} projects removed",
                                            generator.NumberOfProjectsFound, generator.NumberOfProjectsSkipped, generator.NumberOfProjectsAdded, generator.NumberOfProjectsRemoved);
                }
                else
                {
                    message = string.Format("No project files found in the specified location\r\nSolution file is not generated");
                }
                Console.WriteLine();
                Console.WriteLine(message);
            }
        }
Exemplo n.º 15
0
    void GeneratePopulation(int size)
    {
        int n = SelectionLimit + 1;

        n *= 3;
        if (n < InitialPopulationSize)
        {
            n = InitialPopulationSize;
        }

        population = new Population(n)
        {
            SolutionSize = instance.numberOfJobs
        };

        generator = new SolutionGenerator(instance.numberOfJobs, MinMaintenanceLength, MaxMaintenanceLength);
        for (int i = 0; i < size; i++)
        {
            population.Add(generator.Generate());
        }

        BestSolution = new Solution(instance.numberOfJobs);
        BestScore    = 0;
    }
Exemplo n.º 16
0
        private void btnStartGenerate_Click(object sender, EventArgs e)
        {
            // TODO: Refactor this code (group generator ->>>>>>)
            // DESKTOP-1RVEUQ2
            // Get list table is selected to generate
            var tables = listBoxDBTable.SelectedItems.Cast <Table>().ToList();

            // Get project information to generate
            var projectInfo = bindingSourceProjectInfo.Current as ProjectInfo;

            if (!projectInfo.IsOKToGenerate())
            {
                return;
            }

            // Start Generate Project
            var solution = new SolutionGenerator(projectInfo.SolutionName);
            var project1 = new ProjectGenerator(projectInfo.ProjectName);

            NamespaceHelper.Instance.ProjectNamespace = project1.Name;

            // Generate Form
            var loginForm         = new LoginFormGenerator();
            var loginFormDesigner = new LoginFormDesignerGenerator(loginForm);

            var viewListTableForm         = new ViewListTableFormGenerator();
            var viewListTableFormDesigner = new ViewListTableFormDesignerGenerator(viewListTableForm);

            var viewTableForm         = new ViewTableFormGenerator();
            var viewTableFormDesigner = new ViewTableFormDesignerGenerator(viewTableForm);

            // Generate Essential Class
            var dbLoader     = new DatabaseLoaderGenerator(tables, DatabaseLoader.Instance.ConnectionStringBuilder);
            var enumFormType = new EnumFormTypeGenerator();
            var program      = new ProgramGenerator(viewListTableForm);

            // Generate Model And Forms
            foreach (var table in tables)
            {
                // Generate Model
                var modelGen    = new ModelGenerator(table);
                var modelDaoGen = new ModelDaoGenerator(table);

                // Generate View Table Form
                var viewConcreteTableForm        = new ViewConcreteTableFormGenerator(table, viewTableForm);
                var viewConreteTableFormDesigner = new ViewConcreteTableFormDesignerGenerator(table.Name, viewConcreteTableForm);

                // Generate Edit Form
                var editForm         = new EditFormGenerator(table);
                var editFormDesigner = new EditFormDesignerGenerator(table, editForm);

                project1.Add(modelGen);
                project1.Add(modelDaoGen);
                project1.Add(viewConcreteTableForm);
                project1.Add(viewConreteTableFormDesigner);
                project1.Add(editForm);
                project1.Add(editFormDesigner);
            }

            // Generate View Table Form Factory
            var viewTableFormFactory = new ViewTableFormFactoryGenerator(tables);

            //-------------------------------------------------------------------------------------------------
            // Add to project and solution
            project1.Add(dbLoader);
            project1.Add(enumFormType);
            project1.Add(program);

            project1.Add(loginForm);
            project1.Add(loginFormDesigner);

            project1.Add(viewListTableForm);
            project1.Add(viewListTableFormDesigner);

            project1.Add(viewTableForm);
            project1.Add(viewTableFormDesigner);

            project1.Add(viewTableFormFactory);

            solution.Add(project1);
            solution.ExportToFile(projectInfo.Path);
            // Copy Custom Hibernate SQL to Generated Project
            CopyHibernateSQLToProject(projectInfo.SolutionPath, project1.Name);

            Close();
        }
Exemplo n.º 17
0
 private void GeneratorIsCreated()
 {
     this.generator = new SolutionGenerator(this.fileSystem, this.projectGenerator.Object);
 }
 public SolutionGeneratorTests(SolutionGeneratorFixture fixture)
 {
     generator = SolutionGenerator.FromText(fixture.ConfigText, Directory.GetCurrentDirectory());
 }
Exemplo n.º 19
0
 public SolutionTemplate(SolutionGenerator g)
 {
     this.generator = g;
 }
Exemplo n.º 20
0
 public static void ExternalReferences(SolutionGenerator solutionGenerator, HashSet<string> assemblyList)
 {
     References.Instance.ExternalReferences(solutionGenerator, assemblyList);
 }
Exemplo n.º 21
0
 public static void WriteReference(StringBuilder sb, string reference, string referenceItem,
     string url, HashSet<string> usedReferences,
     SolutionGenerator SolutionGenerator)
 {
     if (SolutionGenerator.IsPartOfSolution(reference) && usedReferences.Contains(reference))
     {
         sb.AppendLine(Markup.GetProjectExplorerReference(url, reference));
     }
     else
     {
         // TODO external site
         sb.AppendLine("<span class=\"referenceDisabled\">" + referenceItem + "</span>");
     }
 }
Exemplo n.º 22
0
        public static void TopReferencedAssemblies(SolutionGenerator solutionGenerator, Federation federation, 
            Folder<Microsoft.CodeAnalysis.Project> mergeFolders)
        {
            var filePath = Path.Combine(solutionGenerator.SolutionDestinationFolder, Constants.TopReferencedAssemblies + ".txt");
            if (!File.Exists(filePath))
                return;

            string[] lines = File.ReadAllLines(filePath);

            //var workspace = solutionGenerator.Workspace;
            //if (workspace != null && workspace.CurrentSolution != null)
            //{
            //    var sln = workspace.CurrentSolution;
            //    //foreach (Microsoft.CodeAnalysis.Project proj in sln.Projects)
            //    //{   proj.MetadataReferences
            //}

            //foreach (string assembly in solutionGenerator.GlobalAssemblyList)
            //{
            //    string resultFile = Path.Combine(solutionGenerator.SolutionDestinationFolder, assembly + "\\" + assembly + ".csproj");
            //}

            //var asmList = References.Instance.refList;
        }