private void AddViewModel(ITaskViewModel taskViewModel, TabItem tabItem) { try { if (tabMap.ContainsKey(taskViewModel.Id)) { throw new InvalidOperationException("There is already a tab for this task. name=" + taskViewModel.Name + " description=" + taskViewModel.Description); } taskViewModel.AddStartedCallback(x => TaskStarted(x)); var taskResultViewModel = new TaskResultViewModel(taskViewModel, tabItem); tabItem.DataContext = taskResultViewModel; taskResultViewModel.AddClosedCallback(x => CloseTab(x)); tabMap.Add(taskViewModel.Id, taskResultViewModel); var existing = taskController.Tasks.Where(x => x.Id == taskViewModel.Id).FirstOrDefault(); if (existing == null) { taskController.AddTaskViewModel(taskViewModel); } } catch (Exception ex) { logger.Error(" TaskResultView.AddViewModel", ex); } }
public IActionResult AddTaskResult(int id) { TaskResultViewModel model = new TaskResultViewModel(); var candidate = _context.Candidates.FirstOrDefault(x => x.CandidateID == id); if (candidate == null || candidate.InvitedToInterview == true) { return(RedirectToAction("List")); } model.Candidate = candidate; if (_context.TaskResult.Any(c => c.Candidate == candidate)) { model.Value = _context.TaskResult.Where(c => c.Candidate == model.Candidate).Select(x => x.Value).ToList(); model.TaskGroupName = _context.TaskResult.Where(c => c.Candidate == model.Candidate).Select(x => x.TaskResultLimit.TaskGroup.TaskGroupName).ToList(); } else { List <TaskResultLimit> currentTestResultLimits = _context.TaskResultLimits.OrderByDescending(x => x.Date).Take(10).ToList(); for (int i = 0; i < 10; i++) { model.Value.Add(0.0); int TaskGroupID = currentTestResultLimits[i].TaskGroupID; string TaskGroupName = _context.TaskGroups.Where(x => x.TaskGroupID == TaskGroupID).Select(x => x.TaskGroupName).FirstOrDefault(); model.TaskGroupName.Add(TaskGroupName); } } return(View(model)); }
public void AddInitialCandidateTestResults() { //Arrange CreateValidCandidate(_context); TaskResultViewModel viewModel = new TaskResultViewModel { Value = new List <double> { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } }; for (int i = 0; i < 10; i++) { TaskResultLimit taskResultLimit = new TaskResultLimit(); taskResultLimit.MaxValue = 5; taskResultLimit.TaskGroup = null; _context.TaskResultLimits.Add(taskResultLimit); _context.SaveChanges(); } //Act IActionResult result = _sut.AddTaskResult(viewModel, 1); //Assert RedirectToActionResult viewResult = Assert.IsType <RedirectToActionResult>(result); MockCandidateTestResultProcessor.Verify(x => x.SaveInitialCandidateResults(It.IsAny <TaskResultViewModel>(), It.IsAny <List <TaskResultLimit> >(), It.IsAny <ApplicationDbContext>()), Times.Once); }
public ActionResult Get(long resultId) { var result = new TaskResultViewModel { TaskResult = _apiService.GetResult(resultId).ToModel() }; return(View(result)); }
public void UpdateExistingCandidateResults(TaskResultViewModel model, ApplicationDbContext _context, List <TaskResult> candidateTaskResults) { for (int i = 0; i < model.Value.Count; i++) { _context.Attach(candidateTaskResults[i]); candidateTaskResults[i].Value = model.Value[i]; _context.SaveChanges(); } }
public void AddTaskResultPostAddInitialTestResults() { TaskResultViewModel taskResultViewModel = new TaskResultViewModel(); for (int i = 0; i < 10; i++) { _context.TaskResultLimits.Add(new TaskResultLimit { MaxValue = 1 }); _context.SaveChanges(); } IActionResult result = _sut.AddTaskResult(taskResultViewModel, 1); }
public void SaveInitialCandidateResults(TaskResultViewModel model, List <TaskResultLimit> currentTestResultLimits, ApplicationDbContext _context) { for (int i = 0; i < model.Value.Count; i++) { var taskResult = new TaskResult { Value = model.Value[i], Candidate = model.Candidate, TaskResultLimit = currentTestResultLimits[i] }; _context.TaskResult.Add(taskResult); _context.SaveChanges(); } }
protected override void OnStartup(StartupEventArgs e) { IKernel kernel = new StandardKernel(); kernel.Load(new INinjectModule[] { new UiModule(), new ModelModule() }); /* * var testSelector = kernel.Get<ISelectTestUi>(); * testSelector.Show();*/ var resultWindow = new TestResultWindow(); var result = new TaskResultViewModel("myText lorm ipsum blub blub lbu fdafjd ja sfd af myText lorm ipsum ...", 2, 3); resultWindow.setInput(new TaskResultViewModel[] { result }.ToList()); resultWindow.Show(); base.OnStartup(e); }
public IActionResult AddTaskResult(TaskResultViewModel model, int id) { model.Candidate = _context.Candidates.FirstOrDefault(x => x.CandidateID == id); var CandidateHasTaskResults = _context.TaskResult.Any(x => x.Candidate == model.Candidate); if (CandidateHasTaskResults) { var candidateTaskResults = _context.TaskResult.Where(x => x.Candidate == model.Candidate).ToList(); var candidateTestResultsLimits = _context.TaskResult.Where(x => x.Candidate == model.Candidate).Select(x => x.TaskResultLimit).ToList(); model.TaskGroupName = _context.TaskResult.Where(c => c.Candidate == model.Candidate).Select(x => x.TaskResultLimit.TaskGroup.TaskGroupName).ToList(); var validationResultMessage = _candidateTestResultProcessor.ValidateTestResultsToTestResultLimits(candidateTestResultsLimits, model); if (validationResultMessage != null) { ModelState.AddModelError(string.Empty, validationResultMessage); return(View(model)); } _candidateTestResultProcessor.UpdateExistingCandidateResults(model, _context, candidateTaskResults); } else { List <TaskResultLimit> currentTestResultLimits = _context.TaskResultLimits.OrderByDescending(x => x.Date).Take(10).ToList(); model.TaskGroupName = _context.TaskResultLimits.OrderByDescending(x => x.Date).Select(x => x.TaskGroup.TaskGroupName.ToString()).Take(10).ToList(); var validationResultMessage = _candidateTestResultProcessor.ValidateTestResultsToTestResultLimits(currentTestResultLimits, model); if (validationResultMessage != null) { ModelState.AddModelError(string.Empty, validationResultMessage); return(View(model)); } _candidateTestResultProcessor.SaveInitialCandidateResults(model, currentTestResultLimits, _context); } return(RedirectToAction("List")); }
public string ValidateTestResultsToTestResultLimits(List <TaskResultLimit> testResultLimits, TaskResultViewModel model) { string message = null; for (int i = 0; i < testResultLimits.Count; i++) { if (model.Value[i] > testResultLimits[i].MaxValue) { message = $"Testas numeriu: {i + 1} negali būti didesnis negu {testResultLimits[i].MaxValue}"; } } return(message); }