public ActionResult View(string filename, int pageNumber = 1, int noOfResults = 20) { pageNumber = pageNumber < 1 ? 1 : pageNumber; TestFile testFile = _testsClient.GetTestFile(filename); IEnumerable <Test> tests = testFile.Tests.GetPaged(noOfResults, pageNumber); var viewModel = new TestFileViewModel { PageNumbers = testFile.Tests.GetPageNumbersToShow(noOfResults), Tests = _testFileMapper.BuildTests(tests, pageNumber, noOfResults), Filename = filename, PageNumber = pageNumber, NoOfResults = noOfResults, Environments = _environmentsService.Get().OrderBy(x => x.Order).ThenBy(x => x.Name).Select(x => x.Name).ToArray() }; string viewName = "View"; if (_configuration.ReadonlyMode) { viewName = "View-ReadonlyMode"; } return(View(viewName, viewModel)); }
public ActionResult Add(TestFileViewModel model) { SelectListItem[] environments = GetEnvironmentsDropDown(); if (ModelState.IsValid) { var testFile = new TestFile { Filename = model.Filename, Variables = model.Variables?.Select(x => new Variable(x.Name, x.Value, x.Environment == DEFAULT_ENV_VAL ? string.Empty : x.Environment)).ToList() ?? new List <Variable>() }; bool createdTestFile = _testsClient.CreateTestFile(testFile); if (createdTestFile) { return(RedirectToAction("Index", "Home")); } } if (model.Variables != null) { foreach (VariableViewModel variable in model.Variables) { variable.AvailableEnvironments = environments; } } return(View("Add", model)); }
public ActionResult Update(TestFileViewModel model) { if (ModelState.IsValid) { var variables = new List <Variable>(); foreach (var variableModel in model.Variables ?? new List <VariableViewModel>()) { string environment = variableModel.Environment == DEFAULT_ENV_VAL ? string.Empty : variableModel.Environment; variables.Add(new Variable(variableModel.Name, variableModel.Value, environment)); } var testFile = new TestFile { Filename = model.Filename, Variables = variables }; bool updateTestFile = _testsClient.UpdateTestVariables(testFile); if (updateTestFile) { return(RedirectToAction("View", "TestFile", new { filename = model.Filename })); } } if (model.Variables != null) { SelectListItem[] availableEnvironments = GetEnvironmentsDropDown(); foreach (var variable in model.Variables) { variable.AvailableEnvironments = availableEnvironments; } } return(View("Update", model)); }
public ActionResult Update(string fileName) { TestFile testFile = _testsClient.GetTestFile(fileName); SelectListItem[] environments = GetEnvironmentsDropDown(); var variables = testFile.Variables .Select(x => new VariableViewModel { Name = x.Name, Value = x.Value, Environment = x.Environment.Name, AvailableEnvironments = environments }) .ToList(); var model = new TestFileViewModel { Filename = fileName, Variables = variables }; return(View("Update", model)); }
public ActionResult Add() { var model = new TestFileViewModel(); return(View("Add", model)); }
public ExampleViewModel GetExample(string course, string name) { var dir = _bl.GetExampleDir(course, name); var example = _bl.GetExamples(course).Single(i => i.Name == name); var userUID = _bl.GetCurrentUserUID(); var pastResult = _bl.GetExampleResult(userUID, null, course, name); var vmdl = new ExampleViewModel(example); vmdl.SessionID = Guid.NewGuid(); vmdl.StartTime = DateTime.Now; var angabe = Directory.GetFiles(Path.Combine(dir, "text"), "*Angabe_full.md").FirstOrDefault(); if (angabe != null) { vmdl.Instruction = _bl.FixMarkdown(_bl.ReadTextFile(angabe)); } else { _bl.LogParseError(Path.Combine(dir, "text", "*Angabe_full.md"), "No text/*Angabe_full.md file found."); } var use_this_main = Directory.GetFiles(Path.Combine(dir, "src"), "use_this_main.*").FirstOrDefault(); if (use_this_main != null) { vmdl.UseThisMain = _bl.ReadTextFile(use_this_main); } else { vmdl.UseThisMain = ""; } if (pastResult != null && !string.IsNullOrWhiteSpace(userUID)) { try { var store = _submissionStoreFactory(course, "^" + Path.GetFileName(name) + "$", userUID); var main = store.GetItems().FirstOrDefault(i => i.Name == example.FileName); if (main != null) { using (var sr = new StreamReader(main.GetStream())) { vmdl.SourceCode = sr.ReadToEnd(); } } } catch (Exception ex) { _log.Warn("Error getting source code from git repo", ex); } } if (string.IsNullOrWhiteSpace(vmdl.SourceCode)) { vmdl.SourceCode = vmdl.UseThisMain; } vmdl.TestFiles = Directory.GetFiles(Path.Combine(dir, "tests"), "*.in").Select(inFile => { var path = Path.GetDirectoryName(inFile); var result = new TestFileViewModel(); result.Name = Path.GetFileNameWithoutExtension(inFile); result.In = _bl.ReadTextFile(inFile); result.SExp = _bl.ReadTextFile(Path.Combine(path, result.Name + ".sexp")); return(result); }) .OrderBy(i => i.Name) .ToList(); if (vmdl.TestFiles.Count == 0) { _bl.LogParseError(Path.Combine(dir, "tests", "*.in"), "No test files found."); } return(vmdl); }