Example #1
0
        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);
        }
Example #3
0
    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;
                }
            }
        }
Example #5
0
 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));
         }
     }
 }
Example #6
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);
        }
Example #7
0
        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);
     }
 }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
    // 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();
                        }
                    }
                }
            }
        }
    }
Example #13
0
    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);
        }
    }
Example #14
0
    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));
        }
Example #16
0
        public int Add(QuizItem model)
        {
            model.Id = GetNextId();
            Items.Add(model);

            return(model.Id);
        }
Example #17
0
    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!"));
        }
Example #19
0
 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);
            }
        }
Example #21
0
        /// <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");
            }
        }
Example #22
0
    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));
        }
    }
Example #23
0
        /// <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;
        }
Example #24
0
        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);
        }
Example #25
0
        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();
            }
        }
Example #27
0
    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");
    }
Example #28
0
        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());
        }
Example #29
0
    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();
    }
Example #30
0
 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();
     }
 }
Example #31
0
 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));
        }
        }
 }
Example #32
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);
            }
        }
Example #33
0
 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)));
 }
Example #34
0
    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();
        }
    }
Example #35
0
    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 + "]";
    }
Example #36
0
    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 = "";
    }
Example #37
0
 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)));
 }
Example #38
0
 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));
 }