public async Task <IActionResult> OnGetAsync(int id) { Solution = await _db.Solutions.FindAsync(id); if (Solution == null) { return(RedirectToPage("/Index")); } return(Page()); }
public ActionResult ClassWorkProblem() { var problem = this.Data.Problems.All() .FirstOrDefault(p => p.ProblemType == ProblemType.Classwork && p.ProblemStatus == ProblemStatus.Active); if (problem != null) { string loggeduserId = this.User.Identity.GetUserId(); var userSoludtion = this.Data.Solutions.All().FirstOrDefault( s => s.ProblemId == problem.Id && s.UserId == loggeduserId); if (userSoludtion != null) { return RedirectToAction("Index", "Home"); } var func = new Function(problem.Function, problem.Function2); ViewBag.func = FunctionParser.GetDisplayFunction(func); var dbMistakes = this.Data.Mistakes .All() .Where(m => m.ProblemId == problem.Id).ToList(); Common.Mistake[] mistakes = new Common.Mistake[4]; for (int i = 0; i < dbMistakes.Count(); i++) { mistakes[i] = new Common.Mistake( dbMistakes.ElementAt(i).MistakenProduct, dbMistakes.ElementAt(i).MistakenValue, dbMistakes.ElementAt(i).IndexOfX, dbMistakes.ElementAt(i).DisplayProduct); } for (int i = 0; i < mistakes.Length; i++) { ViewBag.func += "</br> T" + (i + 1) + " => " + mistakes[i].DisplayProduct + " = " + mistakes[i].MistakenValue; } var existingSolution = FunctionParser.Solve(func, mistakes); var viewModel = new Models.Solution(existingSolution, problem.Id); return View(viewModel); } return RedirectToAction("Index", "Home"); }
public ActionResult TruthTable(int[,] firstTable, int[,] secondTable) { var model = new Models.Solution(firstTable, secondTable); return View(model); }
public ActionResult Exercise() { string loggedUserId = User.Identity.GetUserId(); var existingProblem = this.Data.Problems .All().FirstOrDefault(p => p.UserId == loggedUserId && p.ProblemType == ProblemType.Train && p.ProblemStatus == ProblemStatus.Active); if (existingProblem != null) { var func = new Function(existingProblem.Function, existingProblem.Function2); ViewBag.func = FunctionParser.GetDisplayFunction(func); var existingMistakes = this.Data.Mistakes .All() .Where(m => m.ProblemId == existingProblem.Id).ToList(); Common.Mistake[] existingMistakesForSolution = new Common.Mistake[4]; for (int i = 0; i < existingMistakes.Count(); i++) { existingMistakesForSolution[i] = new Common.Mistake( existingMistakes.ElementAt(i).MistakenProduct, existingMistakes.ElementAt(i).MistakenValue, existingMistakes.ElementAt(i).IndexOfX, existingMistakes.ElementAt(i).DisplayProduct); } for (int i = 0; i < existingMistakesForSolution.Length; i++) { ViewBag.func += "</br> T" + (i + 1) + " => " + existingMistakesForSolution[i].DisplayProduct + " = " + existingMistakesForSolution[i].MistakenValue; } var existingSolution = FunctionParser.Solve(func, existingMistakesForSolution); var viewModel = new Models.Solution(existingSolution, existingProblem.Id); return View(viewModel); } function = FunctionParser.Generate(); Common.Mistake[] mistakes = FunctionParser.GenerateMistakes(function); ViewBag.func = FunctionParser.GetDisplayFunction(function); for (int i = 0; i < mistakes.Length; i++) { ViewBag.func += "</br> T" + (i + 1) + " => " + mistakes[i].DisplayProduct + " = " + mistakes[i].MistakenValue; } var solution = FunctionParser.Solve(function, mistakes); ViewBag.table1 = solution.FirstTable; if (solution.SecondTable != null) { ViewBag.table2 = solution.SecondTable; } Problem problem = new Problem( loggedUserId, this.function.Function1, this.function.Function2, ProblemType.Train, ProblemStatus.Active ); this.Data.Problems.Add(problem); this.Data.SaveChanges(); for (int i = 0; i < mistakes.Length; i++) { NDKS.Models.Mistake newMistake = new NDKS.Models.Mistake( problem.Id, mistakes[i].MistakenProduct, mistakes[i].MistakenValue, mistakes[i].IndexOfX, mistakes[i].DisplayProduct); this.Data.Mistakes.Add(newMistake); } this.Data.SaveChanges(); var solutionModel = new Models.Solution(solution, problem.Id); return View(solutionModel); }