Beispiel #1
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var question = await _arDbContext.Questions.SingleOrDefaultAsync(m => m.ID == id);

            if (question == null)
            {
                return(NotFound());
            }

            var vm = Mapper.Map <Question, QuestionManageEditGetViewModel>(question);

            vm.SelectedGrammarIDCollection = QuestionManageDataBuilder.ConvertGrammarIDStringToGrammarIDList(question.GrammarIDString);
            vm.EntireGrammarCollection     = await _arDbContext.Grammars.ToListAsync();

            var applicationUsers = await _userManager.Users.ToListAsync();

            vm.ApplicationUserPresenterCollection = await ApplicationUserHandler.ConvertApplicationUsersToPresenterCollection(_userManager, _roleManager, applicationUsers);

            return(View(vm));
        }
Beispiel #2
0
        public QuestionManageController(ActivityReceiverDbContext arDbContext, UserManager <ApplicationUser> userManager, RoleManager <IdentityRole> roleManager)
        {
            _arDbContext = arDbContext;
            _userManager = userManager;
            _roleManager = roleManager;

            _dataBuilder = new QuestionManageDataBuilder(_arDbContext, _userManager, _roleManager);
        }
Beispiel #3
0
        public async Task <IActionResult> Edit(QuestionManageEditPostViewModel model)
        {
            var question = await _arDbContext.Questions.SingleOrDefaultAsync(q => q.ID == model.ID);

            if (question == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                question.GrammarIDString = QuestionManageDataBuilder.ConvertGrammarIDListToGrammarIDString(model.SelectedGrammarIDCollection);

                Mapper.Map <QuestionManageEditPostViewModel, Question>(model, question);

                try
                {
                    _arDbContext.Update(question);
                    await _arDbContext.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!_arDbContext.Questions.Any(q => q.ID == question.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            var vm = Mapper.Map <QuestionManageEditPostViewModel, QuestionManageEditGetViewModel>(model);

            vm.EntireGrammarCollection = await _arDbContext.Grammars.ToListAsync();

            vm.ApplicationUserPresenterCollection = await ApplicationUserHandler.ConvertApplicationUsersToPresenterCollection(_userManager, _roleManager, _userManager.Users.ToList());

            return(View(vm));
        }
Beispiel #4
0
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var question = await _arDbContext.Questions.SingleOrDefaultAsync(q => q.ID == id);

            if (question == null)
            {
                return(NotFound());
            }

            var vm = Mapper.Map <Question, QuestionManageDeleteGetViewModel>(question);

            vm.GrammarNameString = QuestionManageDataBuilder.ConvertGrammarIDStringToGrammarNameString(question.GrammarIDString, _arDbContext.Grammars.ToList());
            vm.EditorName        = (await _userManager.FindByIdAsync(question.EditorID)).UserName;

            return(View(vm));
        }
Beispiel #5
0
        public async Task <IActionResult> Create(QuestionManageCreatePostViewModel model)
        {
            if (ModelState.IsValid)
            {
                var question = Mapper.Map <QuestionManageCreatePostViewModel, Question>(model);

                // I think grammar should be a multiple select and handled here.
                question.GrammarIDString = QuestionManageDataBuilder.ConvertGrammarIDListToGrammarIDString(model.SelectedGrammarIDCollection);
                question.CreateDate      = DateTime.Now;
                question.EditorID        = (await _userManager.GetUserAsync(HttpContext.User)).Id;

                _arDbContext.Questions.Add(question);
                await _arDbContext.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            //if isValid is false
            var vm = Mapper.Map <QuestionManageCreatePostViewModel, QuestionManageCreateGetViewModel>(model);

            vm.EntireGrammarCollection = _arDbContext.Grammars.ToList();

            return(View(vm));
        }