public async Task <IActionResult> Delete(int?id) { if (id == null) { return(NotFound()); } var theoryModule = await _context.TheoryModule .SingleOrDefaultAsync(m => m.Id == id); if (theoryModule == null) { return(NotFound()); } // Создаём модель представления и записываем информацию TheoryViewModel model = new TheoryViewModel { Id = theoryModule.Id, Name = theoryModule.Name, Description = theoryModule.Description, Paragraphs = _context.Paragraph.Count(x => x.TheoryModule.Id == theoryModule.Id) }; return(View(model)); }
public async Task <IActionResult> Edit(int id, TheoryViewModel model) { if (!TheoryModuleExists(id) || id != model.Id) { return(NotFound()); } if (ModelState.IsValid) { try { var module = _context.TheoryModule.SingleOrDefault(x => x.Id == id); module.Name = model.Name; module.Description = model.Description; _context.Update(module); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(RedirectToAction("Details", new { id })); } return(View(model)); }
protected override void LoadPractice() { TheorySections.Clear(); TheorySections.Add(CreatePracticeSection()); var theoryViewModel = new TheoryViewModel { CurrentTheoryId = -1, Name = "Контрольные работы", Seq = -1, TestTime = 40, IsVisible = true }; var wordPracticeViewModel = CreateWordPracticeViewModel(); var excelPracticeViewModel = CreateExcelPracticeViewModel(); wordPracticeViewModel.CurrentTheory = theoryViewModel; excelPracticeViewModel.CurrentTheory = theoryViewModel; theoryViewModel.TheoryPartElements = new ObservableCollection <TheoryPartElementViewModel> { wordPracticeViewModel, excelPracticeViewModel }; TheoryParts.Insert(0, theoryViewModel); TheorySections.First().TheoryParts.Add(theoryViewModel); }
// Страница просмотра информации о модуле public async Task <IActionResult> Details(int?id) { // Проверяем пришедшую ссылку if (id == null) { return(NotFound()); } // Получаем текущего пользователя и список скрытых для него тем var user = await _userManager.GetUserAsync(User); var hiddenModules = new List <int>(); // Если модуль скрыт от пользователя, выдаём ошибку if (!String.IsNullOrEmpty(user.HiddenThemes)) { hiddenModules = user.HiddenThemes.Split('&').Select(x => int.Parse(x)).ToList(); if (hiddenModules.Contains((int)id)) { return(NotFound()); } } // Получаем нужный модуль var theoryModule = await _context.TheoryModule .SingleOrDefaultAsync(m => m.Id == id); if (theoryModule == null) { return(NotFound()); } // Создаём модель представления и записываем информацию TheoryViewModel model = new TheoryViewModel { Id = (int)id, Name = theoryModule.Name, Description = theoryModule.Description, Paragraphs = _context.Paragraph.Count(x => x.TheoryModule.Id == theoryModule.Id) }; // Ищем модуль с тестированием по этой теме var testModule = await _context.TestModule .Include(x => x.TheoryModule) .SingleOrDefaultAsync(x => x.TheoryModule.Id == id); // Если такой нашёлся, записываем его if (testModule == null) { model.TestId = null; } else { model.TestId = testModule.Id; } return(View(model)); }
public async Task <IActionResult> Create(TheoryViewModel model) { int id = -1; if (ModelState.IsValid) { // Создаём новый модуль TheoryModule module = new TheoryModule() { Name = model.Name, Description = model.Description }; // Сохраняем его в бд _context.Add(module); await _context.SaveChangesAsync(); // Перенаправляем пользователя на создание параграфов id = module.Id; return(RedirectToAction("Create", "Paragraphs", new { moduleId = id, serialNum = 1 })); } return(RedirectToAction(nameof(Index))); }
public IActionResult Create() { TheoryViewModel model = new TheoryViewModel(); return(View(model)); }
public Theory() { InitializeComponent(); DataContext = new TheoryViewModel(); }