예제 #1
0
        private void extractToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentArchive == null || !currentArchive.ArchivedFiles.Any())
            {
                return;
            }

            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();

            var result = folderBrowserDialog.ShowDialog();

            if (result == DialogResult.Abort || result == DialogResult.Cancel)
            {
                return;
            }

            string outputDirectoryPath = folderBrowserDialog.SelectedPath;

            try
            {
                currentArchive.ExtractAllFiles(outputDirectoryPath, true);
            }
            catch (Exception)
            {
                Console.WriteLine("Something went wrong with extraction. Archive is likely invalid or corrupted.");
                return;
            }

            if (generateProjectCheckBox.Checked)
            {
                ProjectGenerator.GenerateProject(currentArchiveVersion, outputDirectoryPath);
            }

            statusLabel.Text = "Archive extracted succesfully.";
        }
예제 #2
0
        public void GivenThereIsASpecFlowProjectWithAReferenceToTheExternalLibrary(string language)
        {
            var project = projectGenerator.GenerateProject(inputProjectDriver);

            projectCompiler.Compile(project);

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

            var libName      = inputProjectDriver.CompiledAssemblyPath;
            var savedLibPath = Path.Combine(Path.GetTempPath(), Path.GetFileName(libName));

            File.Copy(libName, savedLibPath, true);
            assembliesToReference.Add(savedLibPath);

            foreach (var assemblyFileName in inputProjectDriver.FrameworkAssembliesToCopy)
            {
                var originalAssemblyPath = Path.Combine(inputProjectDriver.DeploymentFolder, assemblyFileName);
                var savedAssemblyPath    = Path.Combine(Path.GetTempPath(), assemblyFileName);
                File.Copy(originalAssemblyPath, savedAssemblyPath, true);
                assembliesToReference.Add(savedAssemblyPath);
            }

            inputProjectDriver.Reset();
            inputProjectDriver.ProjectName = "SpecFlow.TestProject";
            inputProjectDriver.Language    = language;
            foreach (var assemblyPath in assembliesToReference)
            {
                inputProjectDriver.References.Add(assemblyPath);
            }
        }
예제 #3
0
        private void CompileInternal()
        {
            var project = projectGenerator.GenerateProject(inputProjectDriver);

            projectCompiler.Compile(project);

            _hooksDriver.EnsureInitialized();
        }
예제 #4
0
        public void WhenTheFeatureFilesInTheProjectAreGenerated()
        {
            var project = projectGenerator.GenerateProject(inputProjectDriver);

            try
            {
                compilationError = null;
                projectCompiler.Compile(project, "UpdateFeatureFilesInProject");
            }
            catch (Exception ex)
            {
                compilationError = ex;
            }
        }
예제 #5
0
        public void GivenThereIsASpecFlowProjectWithAReferenceToTheExternalLibrary()
        {
            var project = projectGenerator.GenerateProject(inputProjectDriver);

            projectCompiler.Compile(project);

            var libName      = inputProjectDriver.CompiledAssemblyPath;
            var savedLibPath = Path.Combine(Path.GetTempPath(), Path.GetFileName(libName));

            File.Copy(libName, savedLibPath, true);

            inputProjectDriver.DefaultBindingClass.OtherBindings.Clear();
            inputProjectDriver.DefaultBindingClass.StepBindings.Clear();
            inputProjectDriver.ProjectName = "SpecFlow.TestProject";
            inputProjectDriver.References.Add(savedLibPath);
        }
예제 #6
0
            public static void MakeProjectIndeterministic(RPGMakerVersion type, bool ignoreComplete = false)
            {
                try
                {
                    FileDialog.CreateSaveDialog("Project File", "Pick a directory.", new string[] { Path.GetExtension(Program.ProjectPath) }, () => {
                        Misc.EnsurePathExists(FileDialog._SaveDialog.DirectoryPath.ToString());
                        ProjectGenerator.GenerateProject(type, FileDialog._SaveDialog.DirectoryPath.ToString());

                        if (!ignoreComplete)
                        {
                            Application.Run(Operation.Complete);
                        }
                    });
                }
                catch (Exception ex)
                {
                    Application.RequestStop(); Operation.ShowError(ex.Message);
                }
            }
예제 #7
0
            public static void MakeProjectWithSavePath(bool ignoreComplete = false)
            {
                try
                {
                    Functions.Operation.ExecuteIfProjectSelected(() => {
                        Misc.EnsurePathExists(FileDialog._SaveDialog.DirectoryPath.ToString());
                        ProjectGenerator.GenerateProject(RGSSAD.GetVersion(Program.ProjectPath), FileDialog._SaveDialog.DirectoryPath.ToString());

                        if (!ignoreComplete)
                        {
                            Application.Run(Operation.Complete);
                        }
                    });
                }
                catch (Exception ex)
                {
                    Application.RequestStop(); Operation.ShowError(ex.Message);
                }
            }
예제 #8
0
        private void CompileInternal()
        {
            var project = projectGenerator.GenerateProject(inputProjectDriver);

            projectCompiler.Compile(project);
        }
예제 #9
0
        private static void Main(string[] args)
        {
            _commandLineOptions = new CommandLineOptions();

            if (Parser.Default.ParseArguments(args, _commandLineOptions) == false)
            {
                Environment.Exit(1);
            }

            if (_commandLineOptions.InputPaths.Count == 0)
            {
                Console.WriteLine(_commandLineOptions.GetUsage());
                Environment.Exit(1);
            }

            var version = RGSSAD.GetVersion(_commandLineOptions.InputPaths.First());

            if (version == RPGMakerVersion.Invalid)
            {
                Console.WriteLine("Invalid input file.");
                Environment.Exit(1);
            }

            string outputDirectoryPath;

            if (_commandLineOptions.OutputDirectoryPath != null)
            {
                outputDirectoryPath = _commandLineOptions.OutputDirectoryPath;
            }
            else
            {
                FileInfo fi = new FileInfo(_commandLineOptions.InputPaths.First());
                outputDirectoryPath = fi.DirectoryName;
            }

            try
            {
                switch (version)
                {
                case RPGMakerVersion.Xp:
                case RPGMakerVersion.Vx:
                    new RGSSADv1(_commandLineOptions.InputPaths.First())
                    .ExtractAllFiles(outputDirectoryPath);
                    break;

                case RPGMakerVersion.VxAce:
                    new RGSSADv3(_commandLineOptions.InputPaths.First())
                    .ExtractAllFiles(outputDirectoryPath);
                    break;
                }
            }
            catch (InvalidArchiveException)
            {
                Console.WriteLine("Archive is invalid or corrupted. Reading failed.");
                Environment.Exit(1);
            }
            catch (UnsupportedArchiveException)
            {
                Console.WriteLine("Archive is not supported or it is corrupted.");
                Environment.Exit(1);
            }
            catch (Exception)
            {
                Console.WriteLine("Something went wrong with reading or extraction. Archive is likely invalid or corrupted.");
                Environment.Exit(1);
            }


            if (_commandLineOptions.GenerateProjectFile)
            {
                ProjectGenerator.GenerateProject(version, outputDirectoryPath);
            }
        }
예제 #10
0
        private XElement Generate()
        {
            var userName = User.Identity.GetUserName();
            var xmlDB    = new XMLDatabase(userName, _context.Users.First(c => c.Name == userName).ActProject);

            String pageName;

            if (String.IsNullOrEmpty(userName))
            {
                pageName = "";
            }
            else
            {
                pageName = _context.Users.First(c => c.Name == userName).ActProject;
            }

            var controllerInfo = new ControllerInfo();
            var datatypesInfo  = new DataTypesInfo
            {
                Components = xmlDB.Components.ToList(),
                Standards  = xmlDB.Standards.ToList(),
                Locations  = xmlDB.Locations.ToList(),
                IOs        = xmlDB.IOs.ToList(),
                //DIPulseSetups = _context.DIpulses.ToList(),
                Modules = xmlDB.Modules.ToList(),
                //MotFrqSetups = _context.MotFrqs.ToList(),
                //DIAlarmSetups = _context.DIAlarms.ToList(),
                //AIAlarmSetups = _context.AIAlarms.ToList(),
                ApplyLocationFilter = false
            };

            var modulesInfo = new ModulesInfo
            {
                modules    = xmlDB.Modules.ToList(),
                controller = new ControllerInfo
                {
                    name        = "StdPLC",
                    description = "Standard controller"                   //TODO From database
                },
                IOs        = xmlDB.IOs.ToList(),
                Components = xmlDB.Components.ToList(),
                //MotFrqSetups = xmlDB.MotFrqs.ToList()
            };

            var tagsInfo = new TagsInfo();

            var programsInfo = new ProgramsInfo
            {
                IOs     = xmlDB.IOs.ToList(),
                Modules = xmlDB.Modules.ToList(),
                //AIAlarmSetups = xmlDB.AIAlarms.ToList(),
                //DIAlarmSetups = xmlDB.DIAlarms.ToList(),
                //DIPulseSetups = xmlDB.DIpulses.ToList(),
                //MDirSetups = xmlDB.MDirs.ToList(),
                //MRevSetups = xmlDB.MRevs.ToList(),
                //MotFrqSetups = xmlDB.MotFrqs.ToList(),
                //StdVlvSetups = xmlDB.StdVlvs.ToList(),
                Components = xmlDB.Components.ToList()
            };

            var tasksInfo = new TasksInfo();
            var addOnInstructionDefinitionsInfo = new AddOnInstructionDefinitionsInfo
            {
                Components = xmlDB.Components.ToList(),
                Standards  = xmlDB.Standards.ToList()
            };



            var generator = new ProjectGenerator(controllerInfo, datatypesInfo, modulesInfo, addOnInstructionDefinitionsInfo, tagsInfo, programsInfo, tasksInfo);


            return(generator.GenerateProject());
        }
        public void TestMethod15()
        {
            ProjectGenerator generator = new ProjectGenerator();

            generator.GenerateProject(Environment.CurrentDirectory, Consts.INFASTRUCTURE_NAMESPACE, "Automation");
        }