public async Task <int> AddQuizItemAsync(QuizItem quizItem) { _context.QuizItems.Add(quizItem); await _context.SaveChangesAsync(); return(quizItem.Id); }
public async Task DeleteQuizItem(QuizItem quizItem) { var deleteFilter = Builders <QuizItem> .Filter.Eq("_id", quizItem.Id); var collection = _database.GetCollection <QuizItem>(_collectionName); await collection.DeleteOneAsync(deleteFilter); }
protected void btnSubmit_Click(object sender, EventArgs e) { wndAsk.Visible = false; QuizItem q = new QuizItem(); q.CreatedBy = Operator.Current; q.Header = header.Text; q.Body = body.Text; string[] ents = tags.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (ents != null && ents.Length > 0) { q.Tags = new List <Tag>(); foreach (string idx in ents) { if (idx.Trim().Length > 0) { string idx2 = idx.ToLower(); Tag t = Tag.FindOne(Expression.Eq("Name", idx2)); if (t == null) { t = new Tag(); t.Name = idx2; t.Save(); } q.Tags.Add(t); } } } q.Save(); if (QuestionAsked != null) { QuestionAsked(this, new QuestionAskedEventArgs(q.Url)); } }
protected void rptTopicChkbox_ItemDataBound(object sender, RepeaterItemEventArgs e) { TopicCheckboxItem TopicItem = e.Item.DataItem as TopicCheckboxItem; if (TopicItem != null) { CheckBox cbTopicItem = e.FindControlAs <CheckBox>("cbTopicItem"); if (TopicItem.ShowCheckbox.Checked == false) { if (cbTopicItem != null) { cbTopicItem.Enabled = false; } } if (savedQuiz != null) { QuizItem temp = savedQuiz.MemberAnswers.Where(i => i.QuestionId == TopicItem.ID.ToGuid()).FirstOrDefault(); if (temp != null) { cbTopicItem.Checked = Convert.ToBoolean(temp.AnswerValue); } } cbTopicItem.Attributes.Add("data-id", TopicItem.ID.ToString()); FieldRenderer frTopicItem = e.FindControlAs <FieldRenderer>("frTopicItem"); if (frTopicItem != null) { frTopicItem.Item = TopicItem; } } }
protected void WalkSave(QuizItem i, Stream s) { if (i is QuizItemContainer) { s.WriteByte(0); QuizItemContainer c = (QuizItemContainer)i; s.WriteByte((byte)c.Items.Count); foreach (QuizItem item in c) { WalkSave(item, s); } } if (i is Question) { s.WriteByte(1); Question c = (Question)i; s.WriteByte((byte)c.Answers.Count); Util.WriteString(s, c.Text); s.WriteByte((byte)(c.Multichoice ? 1 : 0)); foreach (Answer item in c) { Util.WriteString(s, item.Text); s.WriteByte((byte)(item.Correct ? 1 : 0)); } } }
protected QuizItem WalkLoad(Stream s) { QuizItem result = null; int type = s.ReadByte(); if (type == 0) { int count = s.ReadByte(); QuizItemContainer res = new QuizItemContainer(); for (int i = 0; i < count; i++) { res.Items.Add(WalkLoad(s)); } result = res; } if (type == 1) { int count = s.ReadByte(); Question res = new Question(Util.ReadString(s), s.ReadByte() == 1); for (int i = 0; i < count; i++) { res.Answers.Add(new Answer(Util.ReadString(s), s.ReadByte() == 1)); } result = res; } return(result); }
protected override XElement SaveElement(QuizItem i) { XElement result = null; if (i is Quiz) { result = new XElement("quiz", new XAttribute("title", ((Quiz)i).Title)); } else if (i is QuizItemContainer) { result = new XElement("container"); } else if (i is Question) { Question question = (Question)i; XElement q = new XElement( "question", new XAttribute("text", question.Text), new XAttribute("multichoice", question.Multichoice) ); foreach (Answer answer in question) { q.Add(new XElement("answer", new XAttribute("text", answer.Text), new XAttribute("correct", answer.Correct) )); } result = q; } return(result); }
protected void auto_RetrieveAutoCompleterItems(object sender, AutoCompleter.RetrieveAutoCompleterItemsEventArgs e) { if (e.Query.Trim() == string.Empty) { return; } foreach (QuizItem idx in QuizItem.Search(e.Query)) { AutoCompleterItem a = new AutoCompleterItem(); System.Web.UI.WebControls.Literal lit = new System.Web.UI.WebControls.Literal(); string tmpHeader = idx.Header; foreach (string idxStr in e.Query.Split(' ')) { int index = tmpHeader.IndexOf(idxStr, StringComparison.InvariantCultureIgnoreCase); if (index != -1) { tmpHeader = tmpHeader.Insert(index + idxStr.Length, "</span>"); tmpHeader = tmpHeader.Insert(index, "<span class=\"found\">"); } } lit.Text = string.Format("<a href=\"{0}\">{1}</a>", idx.Url, tmpHeader); a.Controls.Add(lit); e.Controls.Add(a); } }
protected override QuizItem LoadElement(XmlNode e) { QuizItem result = null; if (e.Name == "quiz") { result = new Quiz(); ((Quiz)result).Title = e.Attributes["title"].Value; } if (e.Name == "container") { result = new QuizItemContainer(); } if (e.Name == "question") { result = new Question(e.Attributes["text"].Value, bool.Parse(e.Attributes["multichoice"].Value)); foreach (XmlNode ch in e.ChildNodes) { ((Question)result).Answers.Add(new Answer( ch.Attributes["text"].Value, bool.Parse(ch.Attributes["correct"].Value) )); } } return(result); }
protected override QuizItem LoadElement(XElement e) { QuizItem result = null; if (e.Name == "quiz") { result = new Quiz(); ((Quiz)result).Title = e.Attribute("title").Value; } if (e.Name == "container") { result = new QuizItemContainer(); } if (e.Name == "question") { result = new Question(e.Attribute("text").Value, bool.Parse(e.Attribute("multichoice").Value)); foreach (XElement ch in e.Descendants()) { ((Question)result).Answers.Add(new Answer( ch.Attribute("text").Value, bool.Parse(ch.Attribute("correct").Value) )); } } return(result); }
protected override XmlNode SaveElement(QuizItem i) { XmlElement result = null; if (i is Quiz) { result = doc.CreateElement("quiz"); result.Attributes.Append(CreateAttribute("title", ((Quiz)i).Title)); } else if (i is QuizItemContainer) { result = doc.CreateElement("container"); } else if (i is Question) { Question question = (Question)i; XmlElement q = doc.CreateElement("question"); q.Attributes.Append(CreateAttribute("text", question.Text)); q.Attributes.Append(CreateAttribute("multichoice", question.Multichoice.ToString())); foreach (Answer answer in question) { XmlElement e = doc.CreateElement("answer"); e.Attributes.Append(CreateAttribute("text", answer.Text)); e.Attributes.Append(CreateAttribute("correct", answer.Correct.ToString())); q.AppendChild(e); } result = q; } return(result); }
// Update is called once per frame void Update() { if (firstFrame) { SetQuestionAnsweredText(answeredQuestionCount, questions.Count); firstFrame = false; } if (question != null) { closeUpCamera.transform.position = question.question.renderCamPos.position; closeUpCamera.transform.LookAt(question.gameObject.transform.position); } if (CheckInput()) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(inputPos); if (Physics.Raycast(ray, out hit)) { if (hit.transform.gameObject.layer == 11) { question = hit.transform.gameObject.GetComponent <QuizItem>(); if (question != null) { if (!question.question.answered) { AskQuestion(); } } } } } }
protected void VoteAnswerDown(object sender, EventArgs e) { int idOfQuizItem = GetIdOfAnswer(sender as System.Web.UI.Control); try { QuizItem item = QuizItem.Find(idOfQuizItem); Vote o = Vote.FindOne( Expression.Eq("VotedBy", Operator.Current), Expression.Eq("QuizItem", item), Expression.Eq("Score", -1)); if (o != null) { o.Delete(); FindUpLinkButtonForAnswer(sender as System.Web.UI.Control).CssClass = "up"; FindDownLinkButtonForAnswer(sender as System.Web.UI.Control).CssClass = "down"; } else { Vote v = new Vote(); v.QuizItem = item; v.Score = -1; v.VotedBy = Operator.Current; v.Save(); FindUpLinkButtonForAnswer(sender as System.Web.UI.Control).CssClass = "up"; FindDownLinkButtonForAnswer(sender as System.Web.UI.Control).CssClass = "downVoted"; } FindLabelForAnswer(sender as System.Web.UI.Control).Text = QuizItem.Find(idOfQuizItem).Score.ToString(); } catch (Exception err) { ShowError(err.Message); } }
protected void ViewComments(object sender, EventArgs e) { LinkButton btn = sender as LinkButton; int id = GetIdOfAnswer(btn); QuizItem answer = QuizItem.Find(id); Panel tmp = SelectorHelpers.FindFirstByCssClass <Panel>(btn.Parent, "viewComments"); if (!tmp.Visible || tmp.Style["display"] == "none") { btn.Text = "Hide " + btn.Text; tmp.Visible = true; tmp.ReRender(); System.Web.UI.WebControls.Repeater rep = Selector.SelectFirst <System.Web.UI.WebControls.Repeater>(tmp); rep.DataSource = answer.Children; rep.DataBind(); TextArea txt = Selector.SelectFirst <TextArea>(tmp); txt.Text = "write your comment here..."; new EffectRollDown(tmp, 500) .Render(); } else { btn.Text = btn.Text.Replace("Hide ", ""); new EffectRollUp(tmp, 500) .Render(); } }
public async Task <ActionResult <QuizItem> > PostQuizItem([FromBody] QuizItem quizItem) { _context.QuizItem.Add(quizItem); await _context.SaveChangesAsync(); if (quizItem.Answers != null && quizItem.Answers.Any()) { foreach (var item in quizItem.Answers) { var answer = new QuizAnswer { Answer = item, QuizItemId = quizItem.QuizItemId }; _context.QuizAnswers.Add(answer); } await _context.SaveChangesAsync(); } if (quizItem.Options != null && quizItem.Options.Any()) { foreach (var item in quizItem.Options) { var option = new QuizOption { Option = item, QuizItemId = quizItem.QuizItemId }; _context.QuizOptions.Add(option); } await _context.SaveChangesAsync(); } return(CreatedAtAction("GetQuizItem", new { id = quizItem.QuizItemId }, quizItem)); }
public int Add(QuizItem model) { model.Id = GetNextId(); Items.Add(model); return(model.Id); }
protected void DeleteQuestionBtnClick(object sender, EventArgs e) { LinkButton btn = sender as LinkButton; int id = GetIdOfAnswer(btn); QuizItem.Find(id).Delete(); DataBindAnswers(); }
public async Task <IActionResult> PutQuizItem([FromBody] QuizItem quizItem) { var dbItem = _context.QuizItem.Find(quizItem.QuizItemId); _context.Entry(dbItem).State = EntityState.Detached; if (dbItem == null) { return(BadRequest()); } _context.Entry(quizItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); if (quizItem.Answers != null && quizItem.Answers.Any()) { var oldAnswers = _context.QuizAnswers.Where(a => a.QuizItemId == quizItem.QuizItemId); _context.QuizAnswers.RemoveRange(oldAnswers); _context.SaveChanges(); foreach (var item in quizItem.Answers) { var answer = new QuizAnswer { Answer = item, QuizItemId = quizItem.QuizItemId }; _context.QuizAnswers.Add(answer); } await _context.SaveChangesAsync(); } if (quizItem.Options != null && quizItem.Options.Any()) { var oldOptions = _context.QuizOptions.Where(a => a.QuizItemId == quizItem.QuizItemId); _context.QuizOptions.RemoveRange(oldOptions); _context.SaveChanges(); foreach (var item in quizItem.Options) { var option = new QuizOption { Option = item, QuizItemId = quizItem.QuizItemId }; _context.QuizOptions.Add(option); } await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { } return(Ok("Updated successfully!")); }
public static QuizItemViewModel MapFromDataModel(QuizItem model) { return(new QuizItemViewModel { Id = model.Id, Name = model.Name, Created = model.Created.ToShortDateString() + " " + model.Created.ToShortTimeString(), Modified = model.Modified?.ToShortDateString() + " " + model.Modified?.ToShortTimeString() }); }
public int Add(QuizItem model) { using (var context = new QuizAppEntities()) { context.QuizItems.Add(model); context.SaveChanges(); return(model.Id); } }
/// <summary> /// Event handler for the "Create Quiz" button /// </summary> /// <param name="sender">The object sending the request, in this case a button</param> /// <param name="e">The event arguments</param> private void CreateQuizButton_Click(object sender, RoutedEventArgs e) { QuizItem newQuiz = quizHandler.CreateQuiz(QuizNameTextBox.Text, QuizDescriptionTextBox.Text); if (quizHandler.AddQuiz(newQuiz)) { quizes = new ObservableCollection <QuizItem>(quizHandler.quizManager.GetAllItems()); QuizesListView.ItemsSource = quizes; MessageBoxes.ShowInformationMessageBox("Quiz Added"); } }
private void DataBindGrid() { if (_questionsForOperator != null && _questionsForTag != null) { // Cannot have BOTH filter by tags and by operator throw new ApplicationException("Bugin application, cannot have both filter operations on Tags and User"); } TabView tabViewToUpdate = null; UserControls_ItemGrid gridToUpate = null; QuizItem.OrderBy order; if (tab.ActiveTabView == tabLateAct) { tabViewToUpdate = tabLateAct; gridToUpate = gridLateAct; order = QuizItem.OrderBy.LatestActivity; } else if (tab.ActiveTabView == tabNew) { tabViewToUpdate = tabNew; gridToUpate = gridNew; order = QuizItem.OrderBy.New; } else if (tab.ActiveTabView == tabMost) { tabViewToUpdate = tabMost; gridToUpate = gridMost; order = QuizItem.OrderBy.Top; } else if (tab.ActiveTabView == tabUn) { tabViewToUpdate = tabUn; gridToUpate = gridUn; order = QuizItem.OrderBy.Unanswered; } else { throw new ApplicationException("Added grid without adding databinding logic to it!"); } if (_questionsForTag != null) { gridToUpate.DataBindGrid(QuizItem.GetTaggedQuestions(order, _questionsForTag)); } else if (_questionsForOperator != null) { gridToUpate.DataBindGrid(QuizItem.GetQuestionsFromOperator(order, _questionsForOperator)); } else { gridToUpate.DataBindGrid(QuizItem.GetQuestions(order)); } }
/// <summary> /// The Method assists the ChangeQuizButtonHandler with changing the quiz /// </summary> /// <param name="selectedIndex">The index of the quiz to change</param> /// <param name="newTitle">The new title of the quiz</param> /// <param name="newDescription">The new description ofthequiz</param> private void ChangeQuizInformation(int selectedIndex, string newTitle, string newDescription) { QuizItem changedQuiz = quizes.ElementAt(selectedIndex); changedQuiz.Title = newTitle; changedQuiz.Description = newDescription; quizHandler.ChangeQuiz(changedQuiz, selectedIndex); quizes = new ObservableCollection <QuizItem>(quizHandler.quizManager.GetAllItems()); QuizesListView.ItemsSource = quizes; }
protected QuizItem WalkLoad(E e) { QuizItem qi = LoadElement(e); if (IsContainer(e)) { foreach (E ch in GetChildren(e)) { ((QuizItemContainer)qi).Items.Add(WalkLoad(ch)); } } return(qi); }
protected E WalkSave(QuizItem i) { E el = SaveElement(i); if (i is QuizItemContainer) { foreach (QuizItem item in (QuizItemContainer)i) { Append(el, WalkSave(item)); } } return(el); }
public void Update(QuizItem model) { using (var context = new QuizAppEntities()) { var existingEntity = context.QuizItems.FirstOrDefault(o => o.Id == model.Id); if (existingEntity == null) { return; } context.Entry(existingEntity).CurrentValues.SetValues(model); context.SaveChanges(); } }
protected string GetDownCssClassIfVoted(int id) { QuizItem quiz = QuizItem.Find(id); Vote hasVoted = Vote.FindOne( Expression.Eq("VotedBy", Operator.Current), Expression.Eq("QuizItem", quiz), Expression.Eq("Score", -1)); if (hasVoted != null) { return("downVoted"); } return("down"); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } QuizItem = await _context.QuizItems.FirstOrDefaultAsync(m => m.ID == id); if (QuizItem == null) { return(NotFound()); } return(Page()); }
protected void SaveAnswer(object sender, EventArgs e) { Button btn = sender as Button; Panel pnl = btn.Parent as Panel; TextArea txt = Selector.SelectFirst <TextArea>(pnl); new EffectRollUp(pnl, 500).Render(); int id = GetIdOfAnswer(pnl); QuizItem item = QuizItem.Find(id); item.Body = txt.Text; item.Save(); _question.Refresh(); DataBindAnswers(); }
private void TimerOnTick(object sender, EventArgs eventArgs) { if (_currentItem == null) { Logger.Error("Current Quiz item seems to be null", QuizBot.BotInstance.Name); return; } //if (NoPost) return; SpiffCore.Instance.WriteOut.SendMessage("The anwser for the question was: " + _currentItem.Anwser); _currentItem = getQuizItem(); if (Timer != null) { Timer.Start(); } }
protected void WalkSave(QuizItem i, Stream s) { if (i is QuizItemContainer) { s.WriteByte(0); QuizItemContainer c = (QuizItemContainer)i; s.WriteByte((byte)c.Items.Count); foreach (QuizItem item in c) WalkSave(item, s); } if (i is Question) { s.WriteByte(1); Question c = (Question)i; s.WriteByte((byte)c.Answers.Count); Util.WriteString(s, c.Text); s.WriteByte((byte)(c.Multichoice ? 1 : 0)); foreach (Answer item in c) { Util.WriteString(s, item.Text); s.WriteByte((byte)(item.Correct ? 1 : 0)); } } }
public HttpResponseMessage PostQuizItem(int id,QuizItemViewModel item) { var modelStateErrors = ModelState.Values.ToList(); List<string> errors = new List<string>(); foreach (var s in modelStateErrors) foreach (var e in s.Errors) if (e.ErrorMessage != null && e.ErrorMessage.Trim() != "") errors.Add(e.ErrorMessage); if (errors.Count == 0) { try { string userId = Request.GetOwinContext().Authentication.User.Identity.GetUserId(); var currentUser = UserManager.FindById(userId); var quiz = currentUser.quizItems.First(q => q.id == id); var idx = currentUser.quizItems.IndexOf(quiz); quiz = new QuizItem() { quizTitle = item.Title, serializedQuiz = item.SerializedQuiz }; currentUser.quizItems[idx]=quiz; UserManager.Update(currentUser); return Request.CreateResponse(Ok<QuizItem>(quiz)); } catch { return Request.CreateResponse(HttpStatusCode.InternalServerError); } } else { return Request.CreateResponse<List<string>>(HttpStatusCode.BadRequest, errors); } }
public override bool Equals(QuizItem other) { if (!(other is QuizItemContainer)) return false; return (Items.Count == ((QuizItemContainer)other).Items.Count && Items.All(x => ((QuizItemContainer)other).Items.Any(y => y == x))); }
private void GetQuestion() { string id = Request["id"]; if (string.IsNullOrEmpty(id)) Response.Redirect("~/", true); _question = QuizItem.FindOne(Expression.Eq("Url", id + ".quiz")); if (_question == null) Response.Redirect("~/", true); // Checking to see if we should increase the "view count" of this question if (!IsPostBack) { _question.IncreaseViewCount(); } }
protected void SaveComment(object sender, EventArgs e) { Button btn = sender as Button; int id = GetIdOfAnswer(btn.Parent); QuizItem q = QuizItem.Find(id); TextArea tmp = Selector.SelectFirst<TextArea>(btn.Parent); QuizItem n = new QuizItem(); n.Body = tmp.Text; n.CreatedBy = Operator.Current; n.Parent = q; n.Save(); q.Refresh(); new EffectRollUp(btn.Parent, 500) .Render(); LinkButton viewComments = SelectorHelpers.FindFirstByCssClass<LinkButton>(btn.Parent.Parent, "comments"); viewComments.Text = "Comments [" + q.Children.Count + "]"; }
protected void btnSubmit_Click(object sender, EventArgs e) { // Saving question... QuizItem q = new QuizItem(); q.Body = answerBody.Text; q.CreatedBy = Operator.Current; q.Header = ""; q.Parent = _question; q.Save(); // Binding grid again DataBindAnswers(); new EffectHighlight(answersWrapper, 500).Render(); answerBody.Text = ""; }
public override bool Equals(QuizItem other) { return (Text == ((Question)other).Text && Answers.Count == ((Question)other).Answers.Count && Answers.All(x => ((Question)other).Answers.Any(y => y == x))); }
protected void btnSubmit_Click(object sender, EventArgs e) { wndAsk.Visible = false; QuizItem q = new QuizItem(); q.CreatedBy = Operator.Current; q.Header = header.Text; q.Body = body.Text; string[] ents = tags.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (ents != null && ents.Length > 0) { q.Tags = new List<Tag>(); foreach (string idx in ents) { if (idx.Trim().Length > 0) { string idx2 = idx.ToLower(); Tag t = Tag.FindOne(Expression.Eq("Name", idx2)); if (t == null) { t = new Tag(); t.Name = idx2; t.Save(); } q.Tags.Add(t); } } } q.Save(); if (QuestionAsked != null) QuestionAsked(this, new QuestionAskedEventArgs(q.Url)); }