示例#1
0
        public async Task <ActionResult> Create(QuestionView view)
        {
            if (ModelState.IsValid)
            {
                var          pic    = string.Empty;
                const string folder = "~/Content/GamePics";

                if (view.ImageFile != null)
                {
                    pic = Files.UploadPhoto(view.ImageFile, folder, "");
                    pic = string.Format("{0}/{1}", folder, pic);
                }

                var question = new Question
                {
                    CategoryId   = view.CategoryId,
                    QuestionName = view.QuestionName
                };

                question.Picture = pic;

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

                return(RedirectToAction("Index"));
            }

            ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "Name", view.CategoryId);
            return(View(view));
        }
示例#2
0
        private QuestionView OpenQuestionTab(string ProvisioningJid, out bool DoSearch)
        {
            QuestionView QuestionView = null;

            foreach (TabItem TabItem in this.Tabs.Items)
            {
                QuestionView = TabItem.Content as QuestionView;
                if (QuestionView != null && QuestionView.ProvisioningJid == ProvisioningJid)
                {
                    DoSearch = false;
                    return(QuestionView);
                }
            }

            TabItem TabItem2 = new TabItem();

            this.Tabs.Items.Add(TabItem2);

            QuestionView = new QuestionView(ProvisioningJid);

            TabItem2.Header  = "Questions (" + ProvisioningJid + ")";
            TabItem2.Content = QuestionView;

            DoSearch = true;

            return(QuestionView);
        }
示例#3
0
        // GET: Questions/Create
        public ActionResult Create()
        {
            ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "Name");
            var question = new QuestionView();

            return(View());
        }
示例#4
0
        /// <summary>
        /// 加载信息
        /// </summary>
        protected void LoadInfo()
        {
            ddl_Class.DataSource     = NewsAction.NewsClass.Where(p => p.IsLeafClass && p.ModelID == 3);
            ddl_Class.DataTextField  = "ClassName";
            ddl_Class.DataValueField = "ID";
            ddl_Class.DataBind();

            ddl_Class.SelectedValue = cls.ToS();

            ddl_Author.DataSource     = UserView.GetModelList();
            ddl_Author.DataTextField  = "UserName";
            ddl_Author.DataValueField = "ID";
            ddl_Author.DataBind();

            Question qu = QuestionView.GetModelByID(id.ToS());


            if (id > 0)
            {
                ddl_Class.SelectedValue = qu.ClassID.ToS();
                txt_Title.Text          = qu.Title;
                //ddl_Author.Text = qu.UserID.ToS();
                ddl_Author.SelectedValue = qu.UserID.ToS();
                txt_ClickCount.Text      = qu.ClickCount.ToS();
                txt_Content.Text         = qu.Content;

                rp_list.DataSource = AnswerView.GetModelList(string.Format("QuestionID={0} order by id", qu.ID));
                rp_list.DataBind();
            }
        }
示例#5
0
        public async Task Processed(QuestionView QuestionView)
        {
            MainWindow.UpdateGui(() =>
            {
                int i = QuestionView.QuestionListView.SelectedIndex;
                int c;

                QuestionView.Details.Children.Clear();
                QuestionView.QuestionListView.Items.Remove(this);

                c = QuestionView.QuestionListView.Items.Count;
                if (c == 0)
                {
                    MainWindow.currentInstance.CloseTab_Executed(this, null);
                }
                else if (i < c)
                {
                    QuestionView.QuestionListView.SelectedIndex = i;
                }
            });

            await Database.Delete(this);

            LinkedList <Question> ToRemove = null;

            foreach (Question Question in QuestionView.QuestionListView.Items)
            {
                if (Question.IsResolvedBy(this))
                {
                    if (ToRemove is null)
                    {
                        ToRemove = new LinkedList <Question>();
                    }

                    ToRemove.AddLast(Question);
                }
            }

            if (ToRemove != null)
            {
                MainWindow.UpdateGui(() =>
                {
                    foreach (Question Question in ToRemove)
                    {
                        QuestionView.QuestionListView.Items.Remove(Question);
                    }

                    if (QuestionView.QuestionListView.Items.Count == 0)
                    {
                        MainWindow.currentInstance.CloseTab_Executed(this, null);
                    }
                });

                foreach (Question Question in ToRemove)
                {
                    await Database.Delete(Question);
                }
            }
        }
示例#6
0
 public StudentTest()
 {
     InitializeComponent();
     qV = new QuestionView();
     answare.IsVisible = false;
     goodbad.IsVisible = false;
     Send.Text         = "يلا";
     Rowad_Logo.Source = "rowad.png";
 }
示例#7
0
    void SetAnswers(QuestionView view, Question question)
    {
        m_currentView = view;
        view.gameObject.SetActive(true);

        view.AnswerA = question.GetAnswerOption("A");
        view.AnswerB = question.GetAnswerOption("B");
        view.AnswerC = question.GetAnswerOption("C");
        view.AnswerD = question.GetAnswerOption("D");
    }
示例#8
0
        public IHttpActionResult GetOne(int id)
        {
            QuestionView model = (new QuestionService(_uow.GetRepository <IQuestionRepository>())).GetOne(id);

            if (model != null)
            {
                return(Ok(model));
            }
            return(BadRequest("Not found"));
        }
示例#9
0
        internal void NewQuestion(XmppAccountNode Owner, ProvisioningClient ProvisioningClient, Question Question)
        {
            QuestionView QuestionView = this.FindQuestionTab(Owner, ProvisioningClient);

            if (QuestionView != null && Question != null)
            {
                QuestionView.NewQuestion(Question);
                return;
            }

            Task.Run(async() =>
            {
                try
                {
                    LinkedList <Question> Questions = new LinkedList <Question>();
                    bool Found = Question == null;

                    foreach (Question Question2 in await Database.Find <Question>(new FilterAnd(new FilterFieldEqualTo("OwnerJID", Owner?.BareJID),
                                                                                                new FilterFieldEqualTo("ProvisioningJID", ProvisioningClient?.ProvisioningServerAddress)), "Created"))
                    {
                        Questions.AddLast(Question2);

                        if (!Found)
                        {
                            Found = Question2.ObjectId == Question.ObjectId;
                        }
                    }

                    if (!Found)
                    {
                        Questions.AddLast(Question);
                    }

                    if (Questions.First != null)
                    {
                        DispatcherOperation Op = MainWindow.currentInstance.Dispatcher.BeginInvoke(new ThreadStart(() =>
                        {
                            if (QuestionView == null)
                            {
                                QuestionView = this.CreateQuestionTab(Owner, ProvisioningClient);
                            }

                            foreach (Question Question2 in Questions)
                            {
                                QuestionView.NewQuestion(Question2);
                            }
                        }));
                    }
                }
                catch (Exception ex)
                {
                    Log.Critical(ex);
                }
            });
        }
示例#10
0
        public ActionResult ToggleStatus(int id)
        {
            QuestionView question = _uow.GetRepository <IQuestionRepository>().GetOne(id);

            if (question == null)
            {
                return(HttpNotFound());
            }
            _uow.GetRepository <IQuestionRepository>().ToggleQuestionStatus(id);
            return(RedirectToAction("Index"));
        }
示例#11
0
        public ActionResult DeleteConfirmed(int id)
        {
            QuestionView question = _uow.GetRepository <IQuestionRepository>().GetOne(id);

            if (question == null)
            {
                return(HttpNotFound());
            }
            _uow.GetRepository <IQuestionRepository>().Delete(id);
            return(RedirectToAction("Index"));
        }
示例#12
0
        public async Task <IActionResult> Post(string id, [FromBody] QuestionView question)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var quest = await db.Questions.Include(q => q.Choices).FirstOrDefaultAsync(q => q.Id == id);

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

            string checkKind = CheckKind(question);

            if (!string.IsNullOrEmpty(checkKind))
            {
                return(BadRequest(checkKind));
            }

            var set = await db.QuestionSets.Include(d => d.Questions).FirstOrDefaultAsync(q => q.Id == question.QuestionSetId);

            if (set == null)
            {
                return(NotFound(question.QuestionSetId));
            }
            if (set.Questions.Count >= 30 && quest.QuestionSetId != question.QuestionSetId)
            {
                return(BadRequest("Max 30 questions in set"));
            }
            db.Choices.RemoveRange(quest.Choices);

            List <Choice> choices = new List <Choice>();

            if (question.Kind != "text")
            {
                foreach (var c in question.Choices.OrderBy(q => q.Order))
                {
                    choices.Add(new Choice(c, question.QuestionSetId));
                }
            }

            Question nQuestion = new Question(question, choices);

            UpdateQst(quest, nQuestion);

            db.Questions.Update(quest);
            await db.SaveChangesAsync();

            QuestionView view = new QuestionView(quest);

            return(Ok(view));
        }
 //Save the question asked in the forum
 public ActionResult CreateQuestion([Bind(Include = "QuestionDescription,QuestionTitle")] QuestionView QuestionObject)
 {
     if (ModelState.IsValid)
     {
         if (IQuestion.CreateQuestion(QMapToDto(QuestionObject)))
         {
             return(RedirectToAction("AllQuestions"));
         }
     }
     return(View(QuestionObject));
 }
 //Map the objects from QuestionView to QuestionDto
 public QuestionDto QMapToDto(QuestionView QuestionObject)
 {
     return(new QuestionDto
     {
         QuestionDate = QuestionObject.QuestionDate,
         QuestionDescription = QuestionObject.QuestionDescription,
         AnswerCount = QuestionObject.AnswerCount,
         QuestionId = QuestionObject.QuestionId,
         QuestionTitle = QuestionObject.QuestionTitle,
     });
 }
示例#15
0
        private QuestionView CreateQuestionTab(XmppAccountNode Owner, ProvisioningClient ProvisioningClient)
        {
            TabItem TabItem = MainWindow.NewTab("Questions (" + Owner.BareJID + ")");

            this.Tabs.Items.Add(TabItem);

            QuestionView QuestionView = new QuestionView(Owner, ProvisioningClient);

            TabItem.Content = QuestionView;

            return(QuestionView);
        }
示例#16
0
        /// <summary>
        /// 获取下一个提问
        /// </summary>
        /// <param name="img"></param>
        /// <param name="cls"></param>
        /// <returns></returns>
        public static Question GetNextQuestion(Question qs, Class cls)
        {
            List <Question> lresult = QuestionView.GetModelList(string.Format("classID={0} and ID>{1} order by ID Asc", cls.ID, qs.ID), 1);

            if (lresult.Count == 0)
            {
                return(null);
            }
            else
            {
                return(lresult.First());
            }
        }
示例#17
0
        public ActionResult Index()
        {
            Question[] All_Questions   = js.getAllQuestions();
            Question[] PreAppQuestions = js.Get_PreApp_Questions();

            //IEnumerable<Question> paQLIst = All_Questions.ToList();
            QuestionView qView = new QuestionView();

            qView.ApplicationQuestions    = All_Questions.ToList();
            qView.PreApplicationQuestions = PreAppQuestions.ToList();

            return(View(qView));
        }
示例#18
0
        protected void DeleteAnswer(int id)
        {
            AnswerView.DelByID(id);

            Class    cls = ClassView.GetModelByID(WS.RequestString("class"));
            Question qu  = QuestionView.GetModelByID(WS.RequestString("id"));

            if (cls.ID > 0 && qu.ID > 0)
            {
                CreatePage.CreateContentPage(qu, cls);
            }
            rp_list.DataSource = AnswerView.GetModelList(string.Format("QuestionID={0} order by id", WS.RequestString("id")));
            rp_list.DataBind();
        }
        public void View(QuestionView questionView)
        {
            var userViewed = Db.FirstOrDefault <Models.DataModels.QuestionView>("WHERE [UserId] = @0 AND [QuestionId] = @1", questionView.UserId, questionView.QuestionId);

            if (userViewed == null)
            {
                var view = new Models.DataModels.QuestionView
                {
                    UserId     = questionView.UserId,
                    QuestionId = questionView.QuestionId
                };
                Db.Insert("QuestionViews", view);
            }
        }
示例#20
0
        // GET: Questions/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            QuestionView question = _uow.GetRepository <IQuestionRepository>().GetOne(id.Value);

            if (question == null)
            {
                return(HttpNotFound());
            }
            return(View(question));
        }
示例#21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            User u = UserAction.opuser;

            if (u.ID <= 0)
            {
                Js.AlertAndGoback("对不起,您没有登录,请登录后回答!");
                return;
            }

            int    qid     = WS.RequestInt("qid");
            string content = WS.RequestString("content");

            if (qid <= 0)
            {
                Js.AlertAndGoback("对不起,参数错误,如有疑问,请联系管理员!");
                return;
            }

            Class cls = QuestionView.GetModelByID(qid.ToS()).GetClass();

            if (UserAction.HasPostRight(cls.ID) == false)
            {
                Js.AlertAndGoback("对不起,对于本栏目您没有回答权限,如有疑问,请联系管理员!");
                return;
            }

            Answer a = new Answer();

            a.Agree      = 0;
            a.AnswerTime = DateTime.Now;
            a.Content    = content;
            a.QuestionID = qid;
            a.UserID     = u.ID;
            a.UserName   = u.UserName;

            AnswerView.Insert(a);


            Question q = QuestionView.GetModelByID(a.QuestionID.ToS());

            CreatePage.CreateContentPage(q, q.GetClass());//创建内容页



            string url = BasePage.GetQuestionUrl(q, q.GetClass());

            Js.AlertAndChangUrl("回答成功!", url);
        }
示例#22
0
        public async Task <IActionResult> Get(string id)
        {
            var qst = await db.Questions
                      .AsNoTracking()
                      .Include(q => q.Choices)
                      .FirstOrDefaultAsync(q => q.Id == id);

            if (qst == null)
            {
                return(NotFound());
            }
            qst.Choices = qst.Choices.OrderBy(c => c.Order).ToList();
            QuestionView view = new QuestionView(qst);

            return(Ok(view));
        }
示例#23
0
        protected void btn_Submit_Click(object sender, EventArgs e)
        {
            if (UserAction.HasPostRight(ddl_Class.SelectedValue.ToInt32()) == false)
            {
                Js.AlertAndGoback("对不起,对于本栏目您没有提问的权限!如有疑问,请联系管理员");
                return;
            }

            User   u       = UserAction.opuser;
            int    rclass  = WS.RequestInt("ddl_Class", WS.RequestInt("class"));
            string content = WS.RequestString("txt_Content").TrimDbDangerousChar().Trim().HtmlDeCode();
            string title   = WS.RequestString("txt_Title").TrimDbDangerousChar().Trim();

            if (rclass < 0)
            {
                Js.AlertAndGoback("栏目不能为空");
                return;
            }
            if (content.IsNullOrEmpty())
            {
                Js.AlertAndGoback("提问内容不能为空");
                return;
            }
            if (title.IsNullOrEmpty())
            {
                Js.AlertAndGoback("标题不能为空");
                return;
            }

            Question qs = new Question();

            qs.AskTime    = DateTime.Now;
            qs.ClassID    = rclass;
            qs.ClickCount = 0;
            qs.Content    = content;
            qs.Title      = title;
            qs.UserID     = u.ID;
            qs.UserName   = u.UserName;
            qs.ZtID       = 0;
            QuestionView.Insert(qs);

            CreatePage.CreateContentPage(qs, qs.GetClass());
            CreatePage.CreateListPage(qs.GetClass(), 1);
            string url = BasePage.GetQuestionUrl(qs, qs.GetClass());

            Js.AlertAndChangUrl("提问发布成功!", url);
        }
示例#24
0
        public async Task <IActionResult> Post([FromBody] QuestionView question)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string checkKind = CheckKind(question);

            if (!string.IsNullOrEmpty(checkKind))
            {
                return(BadRequest(checkKind));
            }

            var set = await db.QuestionSets.Include(s => s.Questions).FirstOrDefaultAsync(q => q.Id == question.QuestionSetId);

            if (set == null)
            {
                return(NotFound(question.QuestionSetId));
            }
            if (set.Questions.Count >= 30)
            {
                return(BadRequest("Max 30 questions in set"));
            }

            List <Choice> choices = new List <Choice>();

            if (question.Kind != "text")
            {
                foreach (var c in question.Choices.OrderBy(q => q.Order))
                {
                    choices.Add(new Choice(c, question.QuestionSetId));
                }
            }

            question.Order = set.Questions.Count;
            Question qst = new Question(question, choices);

            db.Questions.Add(qst);
            await db.SaveChangesAsync();

            QuestionView view = new QuestionView(qst);

            //TODO: сделать Pacth, копию в sessionChoice
            return(Ok(view));
        }
示例#25
0
        public static Question QuestionConverter(QuestionView questionView)
        {
            Question question = new Question();

            question.Content = questionView.Content;
            question.Answers = new List <Answer>();

            foreach (AnswerView answer in questionView.Answers)
            {
                question.Answers.Add(new
                                     Answer {
                    Content = answer.Content, IsItRight = answer.IsRight
                });
            }

            return(question);
        }
示例#26
0
        public ActionResult CreateAnswer(int questionId, AnswerEdit editModel)
        {
            QuestionView question = _uow.GetRepository <IQuestionRepository>().GetOne(questionId);

            if (question == null)
            {
                return(HttpNotFound());
            }
            editModel.QuestionId = questionId;
            if (ModelState.IsValid)
            {
                _uow.GetRepository <IQuestionRepository>().CreateAnswer(editModel);
                return(RedirectToAction("Index"));
            }

            return(View(editModel));
        }
示例#27
0
        private async Task NewQuestion(string ProvisioningJid, Question Question)
        {
            QuestionView QuestionView;
            bool         DoSearch;

            if (Question == null)
            {
                QuestionView = null;
                DoSearch     = true;
            }
            else
            {
                QuestionView = this.OpenQuestionTab(ProvisioningJid, out DoSearch);
            }

            if (DoSearch)
            {
                bool Found = false;

                foreach (Question Question2 in await Database.Find <Question>(
                             new FilterFieldEqualTo("ProvisioningJid", ProvisioningJid), "Created"))
                {
                    if (QuestionView == null)
                    {
                        QuestionView = this.OpenQuestionTab(ProvisioningJid, out DoSearch);
                    }

                    QuestionView.NewQuestion(Question2);

                    if (Question != null)
                    {
                        Found |= Question2.ObjectId == Question.ObjectId;
                    }
                }

                if (Found)
                {
                    return;
                }
            }

            if (Question != null)
            {
                QuestionView.NewQuestion(Question);
            }
        }
示例#28
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Save_Click(object sender, EventArgs e)
        {
            Class cls = ClassView.GetModelByID(ddl_Class.SelectedValue);

            Question qu = QuestionView.GetModelByID(WS.RequestString("id"));

            qu.ClassID    = ddl_Class.SelectedValue.ToInt32();
            qu.Title      = txt_Title.Text.TrimDbDangerousChar();
            qu.UserID     = ddl_Author.SelectedValue.ToInt32();
            qu.UserName   = ddl_Author.SelectedItem.Text;
            qu.ClickCount = txt_ClickCount.Text.ToInt32(0);
            if (qu.ID <= 0)
            {
                qu.AskTime = DateTime.Now;
            }
            qu.Content = txt_Content.Text.TrimDbDangerousChar();

            qu.Title = txt_Title.Text;
            qu.ZtID  = 0;

            if (qu.ID > 0)
            {
                QuestionView.Update(qu);
            }
            else
            {
                QuestionView.Insert(qu);
            }



            //生成页面

            CreatePage.CreateContentPage(qu, cls);

            Question pre = GetPreQuestion(qu, cls);

            if (pre != null)
            {
                CreatePage.CreateContentPage(pre, cls);
            }
            CreatePage.CreateListPage(cls, 1);


            Js.AlertAndChangUrl("保存成功!", url);
        }
示例#29
0
        private QuestionView FindQuestionTab(XmppAccountNode Owner, ProvisioningClient ProvisioningClient)
        {
            QuestionView QuestionView = null;

            foreach (TabItem TabItem in this.Tabs.Items)
            {
                QuestionView = TabItem.Content as QuestionView;
                if (QuestionView != null &&
                    QuestionView.Owner == Owner &&
                    QuestionView.ProvisioningJid == ProvisioningClient.ProvisioningServerAddress)
                {
                    return(QuestionView);
                }
            }

            return(null);
        }
示例#30
0
        public async Task <IEnumerable <QuestionView> > GradeEventAsync(Guid eventId, IEnumerable <string> answers, CancellationToken ct)
        {
            var questionViews = new List <QuestionView>();

            var evt = await _context.Events.FindAsync(eventId);

            if (evt != null && evt.WorkspaceId.HasValue)
            {
                try
                {
                    var outputsObj = await _casterService.GetWorkspaceOutputsAsync(evt.WorkspaceId.Value, ct);

                    var json = JsonSerializer.Serialize(outputsObj);
                    var root = JsonSerializer.Deserialize <Root>(json, new JsonSerializerOptions
                    {
                        PropertyNameCaseInsensitive = true
                    });

                    for (var i = 0; i < root.Questions.Value.Count(); i++)
                    {
                        var question     = root.Questions.Value[i];
                        var questionView = new QuestionView(question);
                        var answer       = answers.ElementAt(i);

                        if (question.Answer == answer)
                        {
                            questionView.IsCorrect = true;
                        }

                        if (!string.IsNullOrEmpty(answer))
                        {
                            questionView.Answer   = answer;
                            questionView.IsGraded = true;
                        }

                        questionViews.Add(questionView);
                    }
                }
                catch (Exception ex)
                {
                }
            }

            return(questionViews);
        }
示例#31
0
	bool SelectImageQuestionView(QuestionView questionView)
	{
		return (questionView as ImageQuestionView != null);
	}
示例#32
0
	bool SelectTextQuestionView(QuestionView questionView)
	{
		return (questionView as TextQuestionView != null);
	}
示例#33
0
	void SetAnswers(QuestionView view, Question question)
	{
		m_currentView = view;
		view.gameObject.SetActive(true);

		view.AnswerA = question.GetAnswerOption("A");
		view.AnswerB = question.GetAnswerOption("B");
		view.AnswerC = question.GetAnswerOption("C");
		view.AnswerD = question.GetAnswerOption("D");
	}