Esempio n. 1
0
        public void GistTest()
        {
            var integration = new GitIntegration();
            integration.CreateGist(@"This is my test

            gist....");
        }
        public IActionResult AddFiles(string experimentName)
        {
            _logger.LogInformation("handling Framework.AddFiles for sim=" + experimentName);

            string filenames = "";

            foreach (var file in Request.Form.Files)
            {
                _logger.LogInformation("Handling file " + file.FileName);
                var destFilespec = Path.Combine(projectpath + "/" + experimentName + "/framework/" +
                                                Path.GetFileName(file.FileName));
                if (!destFilespec.StartsWith(projectpath))
                {
                    throw new ArgumentException("Invalid file name!");
                }
                _logger.LogInformation("Writing to: " + destFilespec);
                using (var fs = new FileStream(destFilespec, FileMode.Create, FileAccess.Write))
                {
                    file.CopyTo(fs);
                }
                filenames += ", " + file.FileName;
            }
            GitIntegration.CreateBackup(projectpath + "/" + experimentName,
                                        "updated framework folder" + filenames, _gitRemoteOptions);
            return(Ok());
        }
Esempio n. 3
0
        public IActionResult Create([FromBody] ExperimentFileDto requestData)
        {
            var dirname         = relativeFolder + "/" + requestData.Name;
            var configDirname   = dirname + "/configurations/";
            var filename        = dirname + "/script.py";
            var filenameInstall = dirname + "/install.py";

            if (isValidPath(filename))
            {
                new DirectoryInfo(dirname).Create();
                new DirectoryInfo(configDirname).Create();

                Repository.Init(dirname);

                _directoryOptions.SetFileContents(filename, requestData.Script);
                _directoryOptions.SetFileContents(filenameInstall, requestData.ScriptInstall);
                _directoryOptions.SetFileContents(configDirname + requestData.Configurations.First().Key + ".json", requestData.Configurations.First().Value);

                /* generate experiment framework file... */
                var frameworkFolder = new DirectoryInfo(dirname + "/framework");
                if (!frameworkFolder.Exists)
                {
                    frameworkFolder.Create();
                }

                GitIntegration.CreateBackup(dirname, "create/update experimentTemplate", _gitRemoteOptions);
                return(Ok());
            }
            else
            {
                return(BadRequest("Invalid name."));
            }
        }
            public void When_locally_modified_files_do_not_exist_an_empty_array_is_returned()
            {
                var integration = new GitIntegration();

                var modifiedFiles = integration.FindLocallyModifiedFiles(Config);

                Assert.That(modifiedFiles, Is.Empty);
            }
            public void When_unable_to_find_local_modifications_then_an_exception_is_thrown()
            {
                // Cause "git status" to fail by pointing to a .sln file that's not within a git repo.
                var solutionFileNotWithinGitRepo = Path.Combine(Path.GetDirectoryName(Config.SolutionFilePath),
                                                                "..", "..", "..", "..", "Example.sln");

                Config.SolutionFilePath = solutionFileNotWithinGitRepo;

                var integration = new GitIntegration();

                Assert.Throws <SourceControlIntegrationException>(() => integration.FindLocallyModifiedFiles(Config));
            }
            public void When_locally_modified_csharp_files_exist_they_are_returned_relative_to_the_directory_of_the_solution_file()
            {
                var integration = new GitIntegration();

                var modifiedFiles = integration.FindLocallyModifiedFiles(Config);

                Assert.That(modifiedFiles, Is.EquivalentTo(new[]
                {
                    @"Implementation\TempSourceFile.cs",
                    @"Implementation\OtherTempSourceFile.CS"
                }));
            }
Esempio n. 7
0
        public IActionResult DeleteConfig(string name, string configName)
        {
            var filename = relativeFolder + "/" + name + "/configurations/" + configName + ".json";

            if (isValidPath(filename))
            {
                new FileInfo(filename).Delete();
                GitIntegration.CreateBackup(relativeFolder + "/" + name, "delete config " + configName, _gitRemoteOptions);
                return(Ok());
            }
            else
            {
                return(BadRequest("Invalid name."));
            }
        }
Esempio n. 8
0
        public IActionResult CreateConfig(string name, [FromBody] ExperimentFileConfigDto requestData)
        {
            if (name == "undefined")
            {
                return(BadRequest("Invalid name."));
            }

            var filename = relativeFolder + "/" + name + "/configurations/" + requestData.Name + ".json";

            if (isValidPath(filename))
            {
                _directoryOptions.SetFileContents(filename, requestData.Configuration);
                GitIntegration.CreateBackup(relativeFolder + "/" + name, "create/update config " + requestData.Name, _gitRemoteOptions);
                return(Ok());
            }
            else
            {
                return(BadRequest("Invalid name."));
            }
        }