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));
        }
Esempio n. 7
0
 public Theory()
 {
     InitializeComponent();
     DataContext = new TheoryViewModel();
 }