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 }); }
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); } }
protected SolutionGenerator GetGenerator() { if (solution?.Solution != null) { return(solution); } solution = SolutionGenerator.FromPath(SolutionConfigFile.FullName); return(solution); }
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(); } } }
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); }
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); } }
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); } }
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); }
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); }
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"); }
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); } }
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; }
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(); }
private void GeneratorIsCreated() { this.generator = new SolutionGenerator(this.fileSystem, this.projectGenerator.Object); }
public SolutionGeneratorTests(SolutionGeneratorFixture fixture) { generator = SolutionGenerator.FromText(fixture.ConfigText, Directory.GetCurrentDirectory()); }
public SolutionTemplate(SolutionGenerator g) { this.generator = g; }
public static void ExternalReferences(SolutionGenerator solutionGenerator, HashSet<string> assemblyList) { References.Instance.ExternalReferences(solutionGenerator, assemblyList); }
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>"); } }
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; }