Beispiel #1
0
        //[ExportModelStateToTempData]
        public ActionResult Index(QAModel model, string Sort = "")
        {
            try
            {
                if (model.question == null)
                {
                    model.question = new Question();
                }

                if (model.question.questions == null)
                {
                    QuestionWS Qws = new QuestionWS();
                    model.question = Qws.GetQuestionsBySortFilter(Sort);
                }

                if (Sort != null)
                {
                    TempData["Title"] = Sort + " questions";
                }

                if (model.question.questions.Count > 0)
                {
                    return(View(model));
                }
            }
            catch (Exception)
            {
                //TODO: log this error
            }

            TempData["ErrorPrevention"] = "Do you want to <a href='/Questions/Create'> ask a question </a>?";
            ModelState.AddModelError("", "An error occured while retrieving questions");
            return(View("Error"));
        }
Beispiel #2
0
        public ActionResult Update(QAModel model)
        {
            //try
            //{
            Question question = model.question;

            QuestionWS Qws       = new QuestionWS();
            DBUtil     objDBUtil = new DBUtil(3);

            DataSet AddQuestion = Qws.WriteQuestion(question, 2, this);

            if (AddQuestion.RowsExists())
            {
                //taking from 0th table because it will accomodate updates from other users as well

                if (int.Parse(AddQuestion.Tables[0].Rows[0]["StatusCode"].ToString()) == 1)
                {
                    TempData["StatusMsg"] = AddQuestion.Tables[0].Rows[0]["StatusMsg"].ToString();
                }

                return(RedirectToActionPermanent("Details", "Questions", new { QuestionId = model.question.QuestionId }));
            }
            //}
            //catch { }

            ModelState.AddModelError("", "An error occured while updating the question");
            return(RedirectPermanent(this.GetRequestReferrer()));
        }
Beispiel #3
0
        public ActionResult Create(QAModel model)
        {
            Question question = model.question;

            try
            {
                QuestionWS Qws       = new QuestionWS();
                DBUtil     objDBUtil = new DBUtil(3);

                DataSet AddQuestion = Qws.WriteQuestion(question, 1, this);
                if (AddQuestion.RowsExists())
                {
                    int resTbl = AddQuestion.Tables.Count - 1;
                    TempData["StatusMsg"] = AddQuestion.Tables[resTbl].Rows[0]["StatusMsg"].ToString();
                    if (int.Parse(AddQuestion.Tables[resTbl].Rows[0]["StatusCode"].ToString()) == 1)
                    {
                        question.QuestionId = int.Parse(AddQuestion.Tables[resTbl].Rows[0]["QuestionId"].ToString());
                    }
                    else if (int.Parse(AddQuestion.Tables[resTbl].Rows[0]["StatusCode"].ToString()) == 9)
                    {
                        question.QuestionId = int.Parse(AddQuestion.Tables[resTbl].Rows[0]["Duplicate QuestionId"].ToString());
                    }

                    return(RedirectToActionPermanent("Details", "Questions", new { QuestionId = model.question.QuestionId }));
                }
            }
            catch { }

            ModelState.AddModelError("", "An error occured while adding the question");
            return(View(model));
        }
Beispiel #4
0
        // GET: Questions/Details/5
        /// <summary>
        /// Single reusable action for displaying question
        /// </summary>
        /// <param name="model"> The question answer to display (with answer) </param>
        /// <param name="_View"> Eg: Details for display, Edit for editing, Delete for deleting </param>
        /// <param name="question"> The question to display </param>
        /// <returns> The view specified by _View </returns>
        //[ImportModelStateFromTempData]
        //[PageView]
        public ActionResult Details(int QuestionId, string _View)
        {
            QAModel         model           = new QAModel();
            QuestionComment questionComment = new QuestionComment();
            AnswerComment   answerComment   = new AnswerComment();

            dbUtil = new DBUtil(3);
            if (_View == "Edit")
            {
                if (!Request.IsAuthenticated)
                {
                    TempData["RedirectMsg"] = "You must be logged in first";
                    return(RedirectToActionPermanent("Login", "Account"));
                }
            }

            if (QuestionId > 0)
            {
                model.question = new Question();

                QuestionWS Qws = new QuestionWS();
                model.question = Qws.GetQuestionById(QuestionId, this.GetVisitorIP(Session["VisitorIP"]));

                if (model.question.AnswerCount > 0)
                {
                    AnswerWS Aws = new AnswerWS();
                    model.answer = Aws.GenModel4mDS(Answers_ds: Aws.GetAnswersForQuestion(null, QuestionId));
                }
                else
                {
                    model.answer = Answer.InitializeIfNone(model.answer);
                }
            }

            if (TempData["StatusMsg"] == null)
            {
                TempData["Title"] = model.question.Q_Title;
            }
            else
            {
                TempData["Title"] = TempData["StatusMsg"];
            }
            if (Request.IsAuthenticated)
            {
                TempData["LoggedInUser"] = User.Identity.GetCurUserNumber();
            }
            else
            {
                TempData["LoggedInUser"] = 0;
            }

            return(View(_View, model));

            //TempData["ErrorPrevention"] = "Maybe the data required to display the question was incomplete. Do you want to <a href='/Questions/Create'> ask a question </a>?";
            //ModelState.AddModelError("", "An error occured while displaying question");
            //return View("Error");
        }
Beispiel #5
0
        public ActionResult QuestionsByUser(int Q_By, string Q_ByUName)
        {
            QAModel model = new QAModel();

            QuestionWS Qws = new QuestionWS();

            model.question = Qws.QuestionsByUser(Q_By);

            TempData["Title"] = string.Format("Questions asked by {0}", Q_ByUName);

            return(View("Index", model));
        }
Beispiel #6
0
        //[Authorize]
        public ActionResult Edit(int QuestionId)
        {
            TempData["UrlReferrer"] = this.GetRequestReferrer();
            if (!Request.IsAuthenticated)
            {
                TempData["RedirectMsg"] = "You must be logged in first";

                return(View("~/Views/Account/Login.cshtml"));
            }

            QAModel model = new QAModel();

            TempData["Title"] = "Improve question!";

            QuestionWS QWS = new QuestionWS();

            model.question = QWS.GetQuestionById(QuestionId, this.GetVisitorIP(Session["VisitorIP"]));

            return(View(model));
        }