コード例 #1
0
        // GET: Admin/Questions/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var question = await _context.Questions.FindAsync(id);

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

            if (!await UserOwnsQuestionAsync(question))
            {
                return(NotFound());
            }

            var model = new QuestionCreateViewModel();

            model.Id      = question.Id;
            model.Title   = question.Title;
            model.Content = question.Content;
            model.Tags    = string.Join(',', question.Tags.Select(t => t.Tag.Name));

            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> Create(QuestionCreateViewModel model, FormCollection formCollection)
        {
            List <AddAnswerRequest> answers = new List <AddAnswerRequest>();

            for (int i = 4; i < formCollection.Count; i += 2)
            {
                AddAnswerRequest addAnswerRequest = new AddAnswerRequest()
                {
                    Title           = formCollection[i],
                    IsCorrectAnswer = Convert.ToBoolean(formCollection[i + 1])
                };
                answers.Add(addAnswerRequest);
            }

            CreateQuestionRequest createQuestionRequest = new CreateQuestionRequest()
            {
                Title       = model.Title,
                Explanation = model.Explanation,
                ThemeId     = model.ThemeId,
                Answers     = answers
            };

            var question = await _questionAdminService.CreateQuestionAsync(createQuestionRequest);

            if (model.Image != null && model.Image.ContentLength > 0)
            {
                var extension = AttachmentsUtil.GetExtentionFromMimeType(model.Image.ContentType);
                var content   = GetAttachmentContent(model.Image);
                await _questionAdminService.UploadAttachmentAsync(new UploadQuestionAttachmentRequest(question.Id, content, extension));
            }

            return(RedirectToAction("Index", new { themeId = model.ThemeId }));
        }
コード例 #3
0
        public void CreateQuestion(QuestionCreateViewModel model, HttpPostedFileBase image)
        {
            Question question = new Question
            {
                QuestionText = model.QuestionText,
                Difficult    = model.selectedDifficult,
                IdTheme      = int.Parse(model.selectedTheme),
                CreateDate   = DateTime.Now
            };

            foreach (AnswerViewModel ans in model.Answers)
            {
                if (!String.IsNullOrEmpty(ans.AnswerText))
                {
                    question.Answers.Add(MapperToDB.Map <AnswerViewModel, Answer>
                                             (ans));
                }
            }
            if (image != null)
            {
                question.ImageMimeType = image.ContentType;
                question.QuestionImage = new byte[image.ContentLength];
                image.InputStream.Read(question.QuestionImage, 0, image.ContentLength);
            }
            question.AnswerNumber = question.Answers.Count;
            question.Score        = ComputeScore(question);
            Database.Questions.Add(question);
            Database.Answers.AddRange(question.Answers);
            Database.Complete();
        }
コード例 #4
0
        public void UpdateQuestion(QuestionCreateViewModel questionDTO, HttpPostedFileBase image)
        {
            Question question = Database.Questions.Get(questionDTO.IdQuestion);

            question.Difficult    = questionDTO.selectedDifficult;
            question.QuestionText = questionDTO.QuestionText;
            question.Theme        = Database.Themes.Get(Int32.Parse(questionDTO.selectedTheme));
            foreach (AnswerViewModel ans in questionDTO.Answers)
            {
                Answer answer = Database.Answers.Get(ans.IdAnswer);
                answer.AnswerText = ans.AnswerText;
                answer.Correct    = ans.Correct;
                Database.Answers.Update(answer);
            }
            if (image != null)
            {
                question.ImageMimeType = image.ContentType;
                question.QuestionImage = new byte[image.ContentLength];
                image.InputStream.Read(question.QuestionImage, 0, image.ContentLength);
            }

            question.AnswerNumber = question.Answers.Count;
            question.Score        = ComputeScore(question);
            Database.Questions.Update(question);
            Database.Complete();
        }
コード例 #5
0
ファイル: QuestionController.cs プロジェクト: war-man/IEE
 public ActionResult Create()
 {
     using (var dbContext = new SATEntities())
     {
         var hasInput = true;
         var textType = new SelectListItem()
         {
             Value = "1", Text = "Nhập vào"
         };
         var choiceType = new SelectListItem()
         {
             Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
         };
         ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
         {
             choiceType, textType
         }, "Value", "Text", hasInput ? "1" : "0");
         var listType = new SelectList(dbContext.SATTypes.ToList(), "TypeID", "TypeName");
         ViewBag.Type = listType;
         List <SelectListItem> listCalc = UseCalcSelectList();
         ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text");
         var model = new QuestionCreateViewModel();
         model.Status      = false;
         ViewBag.FormValue = JsonConvert.SerializeObject(model);
         var listExamContent = new ExamContentSelectList().GetExamContentSelectList();
         ViewBag.ExamContentID = listExamContent;
         ViewBag.IsInputAnswer = false;
         return(View("CreateWithAnswer", model));
     }
 }
コード例 #6
0
        public async Task <IActionResult> Create([Bind("Id,Name,MyAudio,MyImage,Answeres,CorrectAnswer,SerieId")] QuestionCreateViewModel question)
        {
            if (ModelState.IsValid)
            {
                var uploads = Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\Questions"));

                var Imagefile = DateTime.Now.ToString("MMddyyyyHHmmss-") + question.MyImage.FileName;
                var filePath  = Path.Combine(uploads, Imagefile);
                await question.MyImage.CopyToAsync(new FileStream(filePath, FileMode.Create));

                var Audiofile = DateTime.Now.ToString("MMddyyyyHHmmss-") + question.MyAudio.FileName;
                filePath = Path.Combine(uploads, Audiofile);
                await question.MyAudio.CopyToAsync(new FileStream(filePath, FileMode.Create));

                Question Q = new Question
                {
                    Name          = question.Name,
                    SerieId       = question.SerieId,
                    Image         = @"images\Questions\Image\" + Imagefile,
                    Audio         = @"images\Questions\Audio\" + Audiofile,
                    Answeres      = question.Answeres,
                    CorrectAnswer = question.CorrectAnswer
                };
                await _Questions.AddNewAsync(Q);

                await _Questions.SaveAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(question));
        }
コード例 #7
0
        public ActionResult Create()
        {
            QuestionCreateViewModel model = new QuestionCreateViewModel();

            model.Privacy     = MainPostPrivacyEnum.Everyone;
            ViewBag.System    = Constant.String.QuestionSystem;
            ViewBag.ReturnUrl = _previousUrl == default(string) ? Url.Action("Index") : Url.Content(_previousUrl);
            return(View("Views/QuestionCreateView", model));
        }
コード例 #8
0
        public async Task <IActionResult> CreateQuestion(int surveyId)
        {
            var model  = new QuestionCreateViewModel(surveyId);
            var userId = GetUserId();

            model.Categorys = await service.GetCategorys(userId);

            return(PartialView(model));
        }
コード例 #9
0
        public ActionResult CreateQuestion()
        {
            QuestionCreateViewModel viewModel = new QuestionCreateViewModel()
            {
                Tags   = QBL.GetAllTags(),
                UserId = User.Identity.GetUserId(),
            };

            return(View(viewModel));
        }
コード例 #10
0
        public ActionResult Create(Guid themeId)
        {
            QuestionCreateViewModel questionCreateViewModel = new QuestionCreateViewModel
            {
                ThemeId         = themeId,
                MaxCountAnswers = _maxCountAnswers
            };

            ViewBag.Title = "Add a new question";
            return(View(questionCreateViewModel));
        }
コード例 #11
0
        public ActionResult Create()
        {
            QuestionCreateViewModel questionViewModel = new QuestionCreateViewModel()
            {
                MenuProductGroups = baseViewModel.GetMenu(),
                MenuServiceGroups = baseViewModel.GetMenuServices(),
                FooterRecentBlog  = baseViewModel.GetFooterRecentBlog()
            };

            return(View(questionViewModel));
        }
コード例 #12
0
        public ActionResult EditQuestion(int IdQuestion)
        {
            QuestionCreateViewModel model = _questionService.GetCreationModel(IdQuestion);

            if (model != null)
            {
                return(View(_questionService.GetCreationModel(IdQuestion)));
            }
            else
            {
                return(HttpNotFound());
            }
        }
コード例 #13
0
 public ActionResult EditQuestion(QuestionCreateViewModel model, HttpPostedFileBase image)
 {
     if (ModelState.IsValid)
     {
         _questionService.UpdateQuestion(model, image);
         return(RedirectToAction("GetInfoQuestion", "Question", model.IdQuestion));
     }
     else
     {
         model = _questionService.GetCreationModel(null);
         return(View(model));
     }
 }
コード例 #14
0
        public async Task <IActionResult> CreateQuestion(QuestionCreateViewModel model)
        {
            try
            {
                await service.AddQuestion(model.ToDomain());

                return(Json(new { Success = true, Message = "Questao adicionada com sucesso" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, ex.Message }));
            }
        }
コード例 #15
0
 public ActionResult CreateNewQuestion(QuestionCreateViewModel model,
                                       HttpPostedFileBase image)
 {
     if (model.QuestionText != null && model.Answers.Find(x => x.AnswerText != null) != null)
     {
         _questionService.CreateQuestion(model, image);
         return(RedirectToAction("GetInfoQuestion", "Question"));
     }
     else
     {
         ModelState.AddModelError("", "You must give answer for question!");
         model = _questionService.GetCreationModel(null);
         return(View(model));
     }
 }
コード例 #16
0
        public async Task <IActionResult> Create(QuestionCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var question = new Question();

                question.Title   = model.Title;
                question.Content = model.Content;
                question.Tags    = new List <QuestionTag>();

                // Add tags
                if (!string.IsNullOrEmpty(model.Tags))
                {
                    var tags = model.Tags.Split(',', StringSplitOptions.RemoveEmptyEntries);

                    if (tags.Any())
                    {
                        foreach (var tag in tags)
                        {
                            var dbTag = _context.Tags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower());
                            if (dbTag == null)
                            {
                                // Tag does not exist, create it
                                dbTag      = new Tag();
                                dbTag.Name = tag;
                                _context.Tags.Add(dbTag);
                            }

                            var questionTag = new QuestionTag();
                            questionTag.Question = question;
                            questionTag.Tag      = dbTag;

                            question.Tags.Add(questionTag);
                        }
                    }
                }

                question.Author = await _userManager.GetUserAsync(User);

                question.PublicationDate = DateTime.Now;

                _context.Add(question);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
コード例 #17
0
        public ActionResult Create(QuestionCreateViewModel question)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    bool isValidMobile = Regex.IsMatch(question.CellNumber, @"(^(09|9)[0123456789][0123456789]\d{7}$)|(^(09|9)[0123456789][0123456789]\d{7}$)", RegexOptions.IgnoreCase);

                    if (!isValidMobile)
                    {
                        ModelState.AddModelError("invalidMobile", "شماره موبایل وارد شده صحیح نمی باشد");
                    }

                    else
                    {
                        User user = InsertUser(question.FullName, question.CellNumber, question.Email);
                        db.SaveChanges();
                        Guid questionId = InsertQuestion(user.Id, question.Subject, question.Body);

                        db.SaveChanges();

                        return(RedirectToAction("Activate", new { id = user.Code, questionCode = questionId }));
                    }
                }

                question.MenuProductGroups = baseViewModel.GetMenu();
                question.MenuServiceGroups = baseViewModel.GetMenuServices();
                question.FooterRecentBlog  = baseViewModel.GetFooterRecentBlog();
                ViewBag.PackageId          = new SelectList(db.Packages.Where(current => current.IsActive), "Id", "Title");


                return(View(question));
            }
            catch (Exception e)
            {
                QuestionCreateViewModel questionViewModel = new QuestionCreateViewModel()
                {
                    MenuProductGroups = baseViewModel.GetMenu(),
                    MenuServiceGroups = baseViewModel.GetMenuServices(),
                    FooterRecentBlog  = baseViewModel.GetFooterRecentBlog()
                };

                return(View(questionViewModel));
            }
        }
コード例 #18
0
        public void CreateQuestion(QuestionCreateViewModel questionViewModel)
        {
            Post post = new Post()
            {
                Content     = questionViewModel.Content,
                Title       = questionViewModel.Title,
                CreatedTime = DateTime.Now,
                CreatedById = questionViewModel.UserId,
            };
            Question question = new Question()
            {
                Post = post,
                Tags = QDL.GetSelectedAllTags(questionViewModel.TagsId),
            };

            QDL.CreatePost(post);
            QDL.CreateQuestion(question);
        }
コード例 #19
0
 public QuestionCreateViewModel GetCreationModel(int?id)
 {
     if (!id.HasValue)
     {
         QuestionCreateViewModel newQuestion = new QuestionCreateViewModel();
         newQuestion.Theme   = new SelectList(Database.Themes.GetAll(), "IdTheme", "ThemeName");
         newQuestion.Answers = new List <AnswerViewModel>();
         for (int i = 0; i < 5; i++)
         {
             newQuestion.Answers.Add(new AnswerViewModel());
         }
         return(newQuestion);
     }
     else
     {
         if (Database.Questions.Get(id.Value) != null)
         {
             Question question = Database.Questions.Get(id.Value);
             QuestionCreateViewModel updateQuestion = new QuestionCreateViewModel
             {
                 selectedDifficult = question.Difficult,
                 QuestionText      = question.QuestionText,
                 Answers           = MapperFromDB.Map <IEnumerable <Answer>, List <AnswerViewModel> >(question.Answers),
                 IdQuestion        = question.IdQuestion,
                 ImageMimeType     = question.ImageMimeType,
                 QuestionImage     = question.QuestionImage
             };
             if (question.Theme == null)
             {
                 updateQuestion.selectedTheme = "no theme";
             }
             else
             {
                 updateQuestion.selectedTheme = question.Theme.ThemeName;
             }
             updateQuestion.Theme = new SelectList(Database.Themes.GetAll(), "IdTheme", "ThemeName");
             return(updateQuestion);
         }
         else
         {
             return(null);
         }
     }
 }
コード例 #20
0
        public List <QuestionCreateViewModel> GetQuestionGeneric(int formId)
        {
            List <QuestionCreateViewModel> listQuestionCreateViewModel = new List <QuestionCreateViewModel>();
            var questionViewModels = questionBL.ReadAll().Where(i => i.FormId == formId).ToList();

            foreach (var questionViewModel in questionViewModels)
            {
                QuestionCreateViewModel questionCreateViewModel = new QuestionCreateViewModel();
                int questionId = questionBL.GetId(questionViewModel);
                questionCreateViewModel.QuestionViewModel  = questionViewModel;
                questionCreateViewModel.ElementViewModel   = elementBL.Read(questionViewModel.ElementId);
                questionCreateViewModel.AnswerViewModel    = answerBL.ReadAll().Where(i => i.QuestionId == questionId).ToList();
                questionCreateViewModel.AttributeViewModel = attributeBL.ReadAll().Where(i => i.QuestionId == questionId).ToList();
                foreach (var attribute in questionCreateViewModel.AttributeViewModel)
                {
                    questionCreateViewModel.AttributeResultViewModel.Add(attributeResultBL.ReadAll()
                                                                         .FirstOrDefault(i => i.AttributeId == attributeBL.GetId(attribute)));
                }
            }
            return(listQuestionCreateViewModel);
        }
コード例 #21
0
        //[ValidateAntiForgeryToken]
        public JsonResult SaveQuestion(QuestionCreateViewModel viewModel)
        {
            var cmsResult = new CMSResult();

            if (ModelState.IsValid)
            {
                Question question = new Question
                {
                    QuestionInfo     = viewModel.QuestionInfo,
                    OptionA          = viewModel.OptionA,
                    OptionB          = viewModel.OptionB,
                    OptionC          = viewModel.OptionC,
                    OptionD          = viewModel.OptionD,
                    Answer           = viewModel.Answer,
                    Hint             = viewModel.Hint,
                    QuestionYear     = viewModel.Year,
                    Numerical_Answer = viewModel.Numerical_Answer,
                    Unit             = viewModel.Unit,
                    QuestionLevel    = (QuestionLevel)viewModel.Level,
                    QuestionType     = (QuestionType)viewModel.Type,
                    ChapterId        = viewModel.ChapterId
                };
                cmsResult = _questionService.Save(question);
                var qid = question.QuestionId;
                cmsResult.Data = qid.ToString();
            }
            else
            {
                var errors = ModelState.Values.SelectMany(x => x.Errors).ToArray();
                foreach (var item in errors)
                {
                    cmsResult.Results.Add(new Result {
                        Message = item.ErrorMessage, IsSuccessful = false
                    });
                }
            }

            return(Json(cmsResult, JsonRequestBehavior.AllowGet));
        }
コード例 #22
0
        public async Task <IHttpActionResult> PostQuestion([FromBody] QuestionCreateViewModel createModel)
        {
            Question question = new Question();

            question.QuestionText = createModel.QuestionText;
            db.Questions.Add(question);
            db.SaveChanges();

            Answer answer1 = new Answer();

            answer1.AnswerText = createModel.Answer1Text;
            answer1.QuestionId = question.Id;
            db.Answers.Add(answer1);

            Answer answer2 = new Answer();

            answer2.AnswerText = createModel.Answer2Text;
            answer2.QuestionId = question.Id;
            db.Answers.Add(answer2);

            db.SaveChanges();

            QuestionReadViewModel questionReadViewModel = new QuestionReadViewModel();

            questionReadViewModel.QuestionText = question.QuestionText;
            questionReadViewModel.Answer1Text  = answer1.AnswerText;
            questionReadViewModel.Answer1Score = answer1.Score;
            questionReadViewModel.Answer2Text  = answer2.AnswerText;
            questionReadViewModel.Answer2Score = answer2.Score;

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

            return(Ok(questionReadViewModel));
        }
コード例 #23
0
        public ActionResult Add(QuestionCreateViewModel model)
        {
            if (this.User.Identity.IsAuthenticated)
            {
                this.RedirectToAction("Login", "Accounnt");
            }

            if (this.ModelState.IsValid)
            {
                var question = new Question()
                {
                    Title      = model.Title,
                    Content    = model.Content,
                    IsApproved = true,
                    UserId     = this.User.Identity.GetUserId(),
                    CategoryId = 47,
                    CreatedOn  = DateTime.Now
                };

                this.questions.AddQuestion(question);
            }

            return(this.View());
        }
コード例 #24
0
ファイル: QuestionController.cs プロジェクト: war-man/IEE
        public ActionResult GetAnswerDivCreate(bool isInput, QuestionCreateViewModel createFormValue)
        {
            object model         = new Object();
            string inputViewPath = "";
            string anserViewPath = "";


            model         = createFormValue;
            inputViewPath = "_InputAnswerDiv.cshtml";
            anserViewPath = "_AnswerDiv.cshtml";


            if (isInput)
            {
                Session["IsInputAnswer"] = true;

                return(Json(new { data = Content(Utils.Instance.RenderViewToString(@"~\Areas\ttn_content\Views\Question\" + inputViewPath, model)) }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                Session["IsInputAnswer"] = false;
                return(Json(new { data = Content(Utils.Instance.RenderViewToString(@"~\Areas\ttn_content\Views\Question\" + anserViewPath, model)) }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #25
0
        public ActionResult Add(QuestionCreateViewModel model)
        {
            if (this.User.Identity.IsAuthenticated)
            {
                this.RedirectToAction("Login", "Accounnt");
            }

            if (this.ModelState.IsValid)
            {
                var question = new Question()
                {
                    Title = model.Title,
                    Content = model.Content,
                    IsApproved = true,
                    UserId = this.User.Identity.GetUserId(),
                    CategoryId = 47,
                    CreatedOn = DateTime.Now
                };

                this.questions.AddQuestion(question);
            }

            return this.View();
        }
コード例 #26
0
        public async Task <IActionResult> Edit(int id, QuestionCreateViewModel model)
        {
            if (id != model.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var DBQuestion = await _context.Questions.FindAsync(id);

                    if (!await UserOwnsQuestionAsync(DBQuestion))
                    {
                        return(NotFound());
                    }

                    DBQuestion.Title   = model.Title;
                    DBQuestion.Content = model.Content;


                    // Add tags
                    DBQuestion.Tags.Clear();

                    if (!string.IsNullOrEmpty(model.Tags))
                    {
                        var tags = model.Tags.Split(',', StringSplitOptions.RemoveEmptyEntries);

                        if (tags.Any())
                        {
                            foreach (var tag in tags)
                            {
                                var dbTag = _context.Tags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower());
                                if (dbTag == null)
                                {
                                    // Tag does not exist, create it
                                    dbTag      = new Tag();
                                    dbTag.Name = tag;
                                    _context.Tags.Add(dbTag);
                                }

                                var questionTag = new QuestionTag();
                                questionTag.Question = DBQuestion;
                                questionTag.Tag      = dbTag;

                                DBQuestion.Tags.Add(questionTag);
                            }
                        }
                    }

                    _context.Update(DBQuestion);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!QuestionExists(model.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
コード例 #27
0
        public ActionResult Create(QuestionCreateViewModel questionVM)
        {
            if (!ModelState.IsValid)
            {
                return(View("Views/QuestionCreateView", questionVM));
            }
            Question question = new Question();

            question                = Mapper.Map <QuestionCreateViewModel, Question>(questionVM);
            question.CreatedDate    = DateTime.Now;
            question.LastEditedDate = question.CreatedDate;
            question.UserId         = User.Identity.GetUserId <int>();
            question.Tags           = cService.GetTags(questionVM.TagIds);
            question.Invitations    = cService.GetInvitations(questionVM.InviteIds, User.Identity.GetUserId <int>());
            question.Status         = PostStatusEnum.Active;
            qService.InsertQuestion(question);

            EditedLog editedlog = new EditedLog();

            editedlog.Content     = question.Content;
            editedlog.CreatedDate = question.LastEditedDate;
            editedlog.PostId      = question.Id;
            editedlog.UserId      = question.UserId;
            editedlog.Title       = question.Title;

            question.EditedContents.Add(editedlog);
            qService.EditQuestion(question);
            //Console.WriteLine(questionVM.Tags[0]);
            if (question.Id != 0)
            {
                //new Thread(() =>
                //{
                foreach (int inviteeId in question.Invitations.Select(i => i.InviteeId))
                {
                    Notification notification = new Notification();
                    notification.AuthorId    = _currentUserId;
                    notification.CreatedDate = DateTime.Now;
                    notification.Content     = question.Title;
                    notification.Seen        = false;
                    notification.Type        = NotificationSettingEnum.Invited;
                    notification.UserId      = inviteeId;
                    notification.Link        = Url.Action("Detail", "Question", new { id = question.Id });
                    cService.AddNotification(notification);
                    using (RealTimeService rService = new RealTimeService(new CPMathHubModelContainer(), notification.UserId))
                    {
                        IEnumerable <string> connectionIds = RealTimeHub.Connections.GetConnections(notification.UserId);
                        foreach (string conId in connectionIds)
                        {
                            _hub.Clients.Client(conId).notifyNewActivity(rService.CountNewActivityNotification());
                        }
                    }
                }
                //    }
                //).Start();
                return(RedirectToAction("Detail", new { id = question.Id }));
            }
            else
            {
                return(new HttpStatusCodeResult(500));
            }
        }
コード例 #28
0
 public ActionResult CreateQuestion(QuestionCreateViewModel questionViewModel)
 {
     QBL.CreateQuestion(questionViewModel);
     return(RedirectToAction("Index"));
 }
コード例 #29
0
ファイル: QuestionController.cs プロジェクト: war-man/IEE
        public ActionResult Create(QuestionCreateViewModel model, List <SATAnswer> Answers, string btnSave)
        {
            var db       = new SATEntities();
            var listType = new SelectList(db.SATTypes.ToList(), "TypeID", "TypeName");

            ViewBag.Type = listType;
            List <SelectListItem> listCalc = UseCalcSelectList();

            ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text");
            var listExamContent = new ExamContentSelectList().GetExamContentSelectList();

            ViewBag.ExamContentID = listExamContent;
            db.Dispose();
            var hasInput = true;
            var textType = new SelectListItem()
            {
                Value = "1", Text = "Nhập vào"
            };
            var choiceType = new SelectListItem()
            {
                Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
            };

            ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
            {
                choiceType, textType
            }, "Value", "Text", hasInput ? "1" : "0");
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.FormValue = JsonConvert.SerializeObject(model);
                    if (Session["IsInputAnswer"] != null)
                    {
                        ViewBag.IsInputAnswer = (bool)Session["IsInputAnswer"];
                    }

                    return(View("CreateWithAnswer", model));
                }
                using (var dbContext = new SATEntities())
                {
                    var questionModel = new SATQuestion();
                    questionModel.ExamContentID   = model.ExamContentID;
                    questionModel.HasInputAnswer  = model.HasInputAnswer;
                    questionModel.QuestionContent = model.QuestionContent;
                    questionModel.QuestionNo      = model.QuestionNo;
                    questionModel.Status          = btnSave == "Tạo mới & Đăng" ? true : false;
                    questionModel.Title           = model.Title;
                    questionModel.TypeID          = model.TypeID;


                    dbContext.SATQuestions.Add(questionModel);
                    dbContext.SaveChanges();

                    var lastest = dbContext.SATQuestions.Max(q => q.ID);
                    foreach (var item in Answers)
                    {
                        item.QuestionID = lastest;
                    }
                    dbContext.SATAnswers.AddRange(Answers);
                    dbContext.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View("CreateWithAnswer", model));
            }
        }