public async Task <IActionResult> TeacherAddCriterion(AddCriterion model) { if (model.IsValid()) { _criteria = await _context.GetCriteria(); ResultCriterion criterion = _criteria.FirstOrDefault(u => u.Name == model.Name); if (criterion == null) { criterion = new ResultCriterion() { Name = model.Name, TeacherLogin = User.Identity.Name, ErrorCost = model.ErrorCost, ZipfFactor = model.ZipfFactor, ZipfFactorLowerBound = model.ZipfFactorLowerBound, ZipfFactorUpperBound = model.ZipfFactorUpperBound, WaterCriterionFactor = model.WaterCriterionFactor, WaterCriterionLowerBound = model.WaterCriterionLowerBound, WaterCriterionUpperBound = model.WaterCriterionUpperBound, KeyWordsCriterionFactor = model.KeyWordsCriterionFactor, KeyWordsCriterionLowerBound = model.KeyWordsCriterionLowerBound, KeyWordsCriterionUpperBound = model.KeyWordsCriterionUpperBound }; await _context.AddCriterion(criterion); } } return(RedirectToAction("TeacherAddCriterion", "StudentTeacher", new { mine = false })); }
public async Task <IActionResult> EditCriterion(ResultCriterion editCriterion) { if (editCriterion.IsValid()) { await _context.EditCriterion(editCriterion); return(RedirectToAction("EditDeleteCriterion", "StudentTeacher", new { name = editCriterion.Name })); } else { return(RedirectToAction("EditDeleteCriterion", "StudentTeacher", new { name = _context.GetCriteriaById(editCriterion.Id).Name })); } }
public async Task <IActionResult> UploadFile(IFormFile file, string titles, string paperName, string refsName, string criterionName = null) { if (file == null) { return(new PartialViewResult()); } var uploadFile = new UploadFile { FileName = file.FileName, Length = file.Length, DataStream = new MemoryStream() }; await file.CopyToAsync(uploadFile.DataStream); ResultCriterion criterion = null; try { var criteria = await _context.GetCriteria(); criterion = criteria.First(c => c.Name == criterionName); } catch (Exception) { //Возможно только во время выполнения теста } ResultScoreSettings settings = null; if (criterion != null) { settings = new ResultScoreSettings { ErrorCost = criterion.ErrorCost, KeyWordsCriterionFactor = criterion.KeyWordsCriterionFactor, KeyWordsCriterionLowerBound = criterion.KeyWordsCriterionLowerBound, KeyWordsCriterionUpperBound = criterion.KeyWordsCriterionUpperBound, WaterCriterionFactor = criterion.WaterCriterionFactor, WaterCriterionLowerBound = criterion.WaterCriterionLowerBound, WaterCriterionUpperBound = criterion.WaterCriterionUpperBound, ZipfFactor = criterion.ZipfFactor, ZipfFactorLowerBound = criterion.ZipfFactorLowerBound, ZipfFactorUpperBound = criterion.ZipfFactorUpperBound }; } else { //Возможно только во время выполнения теста settings = new ResultScoreSettings() { ErrorCost = 2, KeyWordsCriterionFactor = 35, KeyWordsCriterionUpperBound = 6, KeyWordsCriterionLowerBound = 14, WaterCriterionFactor = 35, WaterCriterionLowerBound = 14, WaterCriterionUpperBound = 20, ZipfFactor = 30, ZipfFactorLowerBound = 5.5, ZipfFactorUpperBound = 9.5 }; } PaperAnalysisResult result; try { result = _analyzeService.GetAnalyze(uploadFile, titles, paperName, refsName, settings); } catch (Exception ex) { result = new PaperAnalysisResult(new List <Section>(), new List <Criterion>(), new List <AnalyzeResults.Errors.Error>()) { Error = ex.Message }; return(Error(ex.Message)); } AnalysisResult analysisResult = null; if (criterion != null) { analysisResult = new AnalysisResult { Id = Guid.NewGuid().ToString(), Result = result, StudentLogin = User.Identity.Name, TeacherLogin = criterion.TeacherLogin, Criterion = criterion.Name }; } else { analysisResult = new AnalysisResult { Id = Guid.NewGuid().ToString(), Result = result, StudentLogin = null, TeacherLogin = null, Criterion = null }; } Repository.AddResult(analysisResult); return(Ok(analysisResult.Id)); }