// 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)); }
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 })); }
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(); }
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(); }
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)); } }
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)); }
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)); }
public async Task <IActionResult> CreateQuestion(int surveyId) { var model = new QuestionCreateViewModel(surveyId); var userId = GetUserId(); model.Categorys = await service.GetCategorys(userId); return(PartialView(model)); }
public ActionResult CreateQuestion() { QuestionCreateViewModel viewModel = new QuestionCreateViewModel() { Tags = QBL.GetAllTags(), UserId = User.Identity.GetUserId(), }; return(View(viewModel)); }
public ActionResult Create(Guid themeId) { QuestionCreateViewModel questionCreateViewModel = new QuestionCreateViewModel { ThemeId = themeId, MaxCountAnswers = _maxCountAnswers }; ViewBag.Title = "Add a new question"; return(View(questionCreateViewModel)); }
public ActionResult Create() { QuestionCreateViewModel questionViewModel = new QuestionCreateViewModel() { MenuProductGroups = baseViewModel.GetMenu(), MenuServiceGroups = baseViewModel.GetMenuServices(), FooterRecentBlog = baseViewModel.GetFooterRecentBlog() }; return(View(questionViewModel)); }
public ActionResult EditQuestion(int IdQuestion) { QuestionCreateViewModel model = _questionService.GetCreationModel(IdQuestion); if (model != null) { return(View(_questionService.GetCreationModel(IdQuestion))); } else { return(HttpNotFound()); } }
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)); } }
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 })); } }
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)); } }
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)); }
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)); } }
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); }
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); } } }
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); }
//[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)); }
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)); }
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()); }
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)); } }
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(); }
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)); }
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)); } }
public ActionResult CreateQuestion(QuestionCreateViewModel questionViewModel) { QBL.CreateQuestion(questionViewModel); return(RedirectToAction("Index")); }
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)); } }