public ActionResult WriteProposal(QuestionDetailModel model)
        {
            UnitOfWork uow = new UnitOfWork();

            model.QuestionDetail = uow.UserRepository.GetQuestionDetailById(model.ProblemId);
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("error", Resources.Resources.InvalidInfo);
                return(View(model));
            }
            StudentProblemBid problem = new StudentProblemBid
            {
                BidID        = Guid.NewGuid().ToString(),
                UserID       = Session["UserId"].ToString(),
                ProblemID    = model.ProblemId,
                CreationDate = DateTime.Now,
                Description  = model.Response,
                Status       = (int)BidStatus.Created,
            };

            uow.StudentProblemBids.Insert(problem);
            uow.Save();
            Common.AddNotification(Session["UserName"] + " sent you a proposal", "", Session["UserId"].ToString(), model.QuestionDetail.UserID, "/problem/proposal/" + problem.BidID, (int)NotificationType.Question);
            ModelState.AddModelError("success", Resources.Resources.MsgProposalSuccess);
            return(View(model));
        }
Exemple #2
0
        /// <summary>
        /// 上报问题详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult QuestionDetail(int id)
        {
            WeixinApiInit();

            IQuestionBLL questionBll = BLLFactory <IQuestionBLL> .GetBLL("QuestionBLL");

            var question = questionBll.GetEntity(m => m.Id == id);

            var model = new QuestionDetailModel
            {
                Id            = question.Id,
                Title         = question.Title,
                Desc          = string.IsNullOrEmpty(question.Desc) ? "" : question.Desc,
                Status        = question.Status,
                UploadTime    = question.UploadTime.ToString("yyyy-MM-dd HH:mm:ss"),
                Imgs          = string.IsNullOrEmpty(question.Imgs) ? new string[] { } : question.Imgs.Split(';'),
                AudioPath     = question.AudioPath,
                VoiceDuration = question.VoiceDuration,
                PropertyName  = question.PropertyPlace.Name,
                DisposesTime  = question.Status == ConstantParam.NO_DISPOSE ? null : question.QuestionDisposes.FirstOrDefault().DisposeTime.ToString("yyyy-MM-dd HH:mm:ss"),
                DisposeDesc   = question.Status == ConstantParam.DISPOSED ? question.QuestionDisposes.FirstOrDefault().DisposeDesc : ""
            };

            return(View(model));
        }
        // GET: Question/Details/5
        public ActionResult Details(int id)
        {
            var questionDetailModel = new QuestionDetailModel()
            {
                Question = questionFacade.GetQuestionByID(id)
            };

            return(View(questionDetailModel));
        }
        public JsonResult GetMappingList(int DocumentId)
        {
            ViewQuestionModel   objViewQuestionModel   = new ViewQuestionModel();
            QuestionDetailModel objQuestionDetailModel = new QuestionDetailModel();

            objQuestionDetailModel.DocumentID = DocumentId;
            objQuestionDetailModel.StepID     = 0;

            //initial set of current page, pageSize , Total pages
            objViewQuestionModel.CurrentPage = 1;
            objViewQuestionModel.TotalPages  = 0;


            objViewQuestionModel.QuestionDetail    = objQuestionDetailModel;
            objViewQuestionModel.QuestionDetail.ID = DocumentId;
            //Get Question Type List to fill dropdown of Question Type
            FillQuestionType();

            objViewQuestionModel.PageSize = int.MaxValue - 1;
            //ViewBag.ParentQuestionList
            List <DropdownModel> objDropdown       = new List <DropdownModel>();
            List <DropdownModel> objDropdownParent = new List <DropdownModel>();

            ViewBag.ParentAnswerList = new SelectList(objDropdownParent, "Id", "Value");

            List <DropdownModel> objParentSeSession = new List <DropdownModel>();

            //Get Question in Add or Edit Model and also show Question List based on Document and sorting paging parameters
            serviceResponse      = objUtilityWeb.PostAsJsonAsync(WebApiURL.Question + "/GetQuestions", objViewQuestionModel);
            objViewQuestionModel = serviceResponse.StatusCode == HttpStatusCode.OK ? serviceResponse.Content.ReadAsAsync <ViewQuestionModel>().Result : null;
            foreach (QuestionDetailModel objItem in objViewQuestionModel.QuestionsList)
            {
                DropdownModel objDropdownModel = new DropdownModel();
                objDropdownModel.ID    = objItem.QuestionID;
                objDropdownModel.Value = objItem.QuestionDescription;
                if (objItem.QuestionType == CommonUtils.QuestionType.DropDown.ToString() || objItem.QuestionType == CommonUtils.QuestionType.SingleSelect.ToString())
                {
                    objParentSeSession.Add(new DropdownModel {
                        ID = objItem.QuestionID, Value = objItem.ParentDDLText
                    });
                }
                objDropdown.Add(objDropdownModel);
            }

            Session["ParentSeSession"] = null;
            Session["ParentSeSession"] = objParentSeSession;

            ViewBag.ParentQuestionList = new SelectList(objDropdown, "Id", "Value");

            return(this.Json(ViewBag.ParentQuestionList, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Detalle(long id)
        {
            var question = _readOnlyRepository.GetById <QuestionAnswer>(id);
            var pregunta = new QuestionDetailModel
            {
                Id        = id,
                Fecha     = question.Fecha,
                Pregunta  = question.Pregunta,
                Respuesta = question.Respuesta
            };

            if (pregunta.Respuesta == "none")
            {
                this.AddNotification("La pregunta no ha sido contestada e intentaramos resolverla lo mas pronto posible.", NotificationType.Info);
            }

            return(View(pregunta));
        }
        public async Task <IActionResult> QuestionDetail(String id)
        {
            string requestStr = "http://localhost:19845/api/questions/" + id;
            var    request    = new HttpRequestMessage(HttpMethod.Get, requestStr);

            var client = _clientFactory.CreateClient();

            var task = client.SendAsync(request);
            var str  = await task.Result.Content.ReadAsStringAsync();

            QuestionDetailModel     arr  = JsonConvert.DeserializeObject <QuestionDetailModel>(str);
            QuestionDetailandAnswer data = new QuestionDetailandAnswer {
                QuestionDetail = arr,
                Answer         = ""
            };

            return(View(data));
        }
Exemple #7
0
        /// <summary>
        /// Get Question List based on  and sorting and paging parameters.
        /// </summary>
        /// <param name="objViewQuestionModel"></param>
        /// <returns></returns>
        public ViewQuestionModel GetQuestionsList(ViewQuestionModel objViewQuestionModel)
        {
            List <QuestionDetailModel> lstQuestionDetailModel = new List <QuestionDetailModel>();

            try
            {
                objViewQuestionModel.SortBy = objViewQuestionModel.SortBy ?? String.Empty;

                //Get All Questions based on  Application Mapping and sorting and paging parameters
                DataTable dtQuestion = objDLQuestion.GetQuestionsList(objViewQuestionModel);

                foreach (DataRow dr in dtQuestion.Rows)
                {
                    QuestionDetailModel itemQuestionDetailModel = GetDataRowToEntity <QuestionDetailModel>(dr);
                    lstQuestionDetailModel.Add(itemQuestionDetailModel);
                }

                objViewQuestionModel.QuestionsList = lstQuestionDetailModel;
                //set Paging based on Question List
                if (objViewQuestionModel != null && objViewQuestionModel.QuestionsList != null && objViewQuestionModel.QuestionsList.Count > 0)
                {
                    int totalRecord = objViewQuestionModel.QuestionsList[0].TotalCount;

                    if (decimal.Remainder(totalRecord, objViewQuestionModel.PageSize) > 0)
                    {
                        objViewQuestionModel.TotalPages = (totalRecord / objViewQuestionModel.PageSize + 1);
                    }
                    else
                    {
                        objViewQuestionModel.TotalPages = totalRecord / objViewQuestionModel.PageSize;
                    }
                }
                else
                {
                    objViewQuestionModel.TotalPages  = 0;
                    objViewQuestionModel.CurrentPage = 1;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(objViewQuestionModel);
        }
 public ActionResult WriteProposal(string q)
 {
     if (q != null)
     {
         UnitOfWork          uow   = new UnitOfWork();
         QuestionDetailModel model = new QuestionDetailModel();
         model.QuestionDetail = uow.UserRepository.GetQuestionDetailById(q);
         if (model.QuestionDetail != null)
         {
             model.ProblemId = q;
             return(View(model));
         }
         return(RedirectToAction("studentproblems", "tutor"));
     }
     else
     {
         return(RedirectToAction("studentproblems", "tutor"));
     }
 }
        /// <summary>
        /// Add or Edit Question for Document
        /// </summary>
        /// <param name="prm"></param>
        /// <returns></returns>
        public ActionResult SaveQuestion(string prm)
        {
            int DocumentId, DocumentQuestionId, StepID;
            ViewQuestionModel   objViewQuestionModel   = new ViewQuestionModel();
            QuestionDetailModel objQuestionDetailModel = new QuestionDetailModel();

            try
            {
                if (!String.IsNullOrEmpty(prm))
                {
                    string strPrm = CommonUtils.Decrypt(prm);
                    //If strPrm contain , means question is in edit mode else question is in add mode.
                    if (strPrm.Contains(",") && strPrm.Split(',').Length > 2)
                    {
                        int.TryParse(strPrm.Split(',')[0], out DocumentId);
                        int.TryParse(strPrm.Split(',')[1], out DocumentQuestionId);
                        int.TryParse(strPrm.Split(',')[2], out StepID);
                    }
                    else if (strPrm.Contains(",") && strPrm.Split(',').Length > 1)
                    {
                        int.TryParse(strPrm.Split(',')[0], out DocumentId);
                        int.TryParse(strPrm.Split(',')[1], out DocumentQuestionId);
                        StepID = 0;
                    }
                    else
                    {
                        int.TryParse(strPrm, out DocumentId);
                        //set DocumentQuestionId equal to 0 in case of Add Question.
                        DocumentQuestionId = 0;
                        StepID             = 0;
                    }
                    //if Document Id is 0 means some change in parameter. then set message Document not exist and redirect to view Document page.
                    if (DocumentId == 0)
                    {
                        TempData["NoticeMessage"] = "Document Not Exist";
                        return(RedirectToAction("ViewDocument", "Document"));
                    }

                    objQuestionDetailModel.DocumentID = DocumentId;
                    objQuestionDetailModel.QuestionID = DocumentQuestionId;
                    objQuestionDetailModel.StepID     = StepID;

                    //initial set of current page, pageSize , Total pages
                    objViewQuestionModel.CurrentPage = 1;
                    objViewQuestionModel.TotalPages  = 0;

                    objViewQuestionModel.QuestionDetail = objQuestionDetailModel;
                    //Get Question Type List to fill dropdown of Question Type
                    FillQuestionType();


                    if (StepID > 0)
                    {
                        objViewQuestionModel.PageSize = int.MaxValue - 1;
                        //ViewBag.ParentQuestionList
                        List <DropdownModel> objDropdown = new List <DropdownModel>();


                        List <DropdownModel> objParentSeSession = new List <DropdownModel>();
                        //Get Question in Add or Edit Model and also show Question List based on Document and sorting paging parameters
                        serviceResponse      = objUtilityWeb.PostAsJsonAsync(WebApiURL.Question + "/GetQuestions", objViewQuestionModel);
                        objViewQuestionModel = serviceResponse.StatusCode == HttpStatusCode.OK ? serviceResponse.Content.ReadAsAsync <ViewQuestionModel>().Result : null;
                        foreach (QuestionDetailModel objItem in objViewQuestionModel.QuestionsList)
                        {
                            DropdownModel objDropdownModel = new DropdownModel();
                            objDropdownModel.ID    = objItem.QuestionID;
                            objDropdownModel.Value = objItem.QuestionDescription;
                            if (objItem.QuestionType == CommonUtils.QuestionType.DropDown.ToString() || objItem.QuestionType == CommonUtils.QuestionType.SingleSelect.ToString())
                            {
                                objDropdown.Add(objDropdownModel);
                                objParentSeSession.Add(new DropdownModel {
                                    ID = objItem.QuestionID, Value = objItem.ParentDDLText
                                });
                            }
                        }

                        Session["ParentSeSession"] = null;
                        Session["ParentSeSession"] = objParentSeSession;

                        ViewBag.ParentQuestionList = new SelectList(objDropdown, "Id", "Value", objViewQuestionModel.QuestionDetail.ParentQuestion);
                        List <DropdownModel> objDropdownParent = new List <DropdownModel>();

                        if (Convert.ToInt32(objViewQuestionModel.QuestionDetail.ParentQuestion) > 0)
                        {
                            if (Session["ParentSeSession"] != null)
                            {
                                string       OptionText = objParentSeSession.Where(x => x.ID == Convert.ToInt32(objViewQuestionModel.QuestionDetail.ParentQuestion)).FirstOrDefault().Value;
                                StringReader theReader  = new StringReader("<XmlDS>" + OptionText + "</XmlDS>");
                                DataSet      theDataSet = new DataSet();
                                theDataSet.ReadXml(theReader);

                                foreach (DataRow item in theDataSet.Tables[0].Rows)
                                {
                                    if (item["Value"].ToString() == objViewQuestionModel.QuestionDetail.ParentAnswer.ToString())
                                    {
                                        objViewQuestionModel.QuestionDetail.ParentAnswer = item["ID"].ToString();
                                    }
                                    objDropdownParent.Add(new DropdownModel
                                    {
                                        ID    = Convert.ToInt32(item["ID"]),
                                        Value = item["Value"].ToString() //,
                                                                         //Selected = item["Value"].ToString() == objViewQuestionModel.QuestionDetail.ParentAnswer.ToString() ? true : false
                                    });
                                }
                            }
                        }
                        ViewBag.ParentAnswerList = new SelectList(objDropdownParent, "Id", "Value", objViewQuestionModel.QuestionDetail.ParentAnswer);

                        if (objViewQuestionModel.QuestionDetail.QuestionType == CommonUtils.QuestionType.DropDown.ToString())
                        {
                            DropDownValue(objViewQuestionModel.QuestionDetail.DropDownXML);
                        }
                    }
                    else
                    {
                        objViewQuestionModel.PageSize = CommonUtils.PageSize;
                        //Get Question in Add or Edit Model and also show Question List based on Document and sorting paging parameters
                        serviceResponse      = objUtilityWeb.PostAsJsonAsync(WebApiURL.Question + "/GetQuestions", objViewQuestionModel);
                        objViewQuestionModel = serviceResponse.StatusCode == HttpStatusCode.OK ? serviceResponse.Content.ReadAsAsync <ViewQuestionModel>().Result : null;
                    }


                    objViewQuestionModel.QuestionTypeDetail = new QuestionTypeDetailModel();
                    //if question is in edit mode than set Question properties based on quetion type
                    if (objViewQuestionModel != null && objViewQuestionModel.QuestionDetail != null && !String.IsNullOrEmpty(objViewQuestionModel.QuestionDetail.QuestionType))
                    {
                        objViewQuestionModel.QuestionTypeDetail = objCommonUtils.SetQuestionProperties(objViewQuestionModel.QuestionDetail.QuestionType, objViewQuestionModel.QuestionPropertyList, objViewQuestionModel.QuestionTypeDetail, objViewQuestionModel.QuestionDetail.QuestionOptionsList, objViewQuestionModel.QuestionDetail.DropDownXML);
                    }
                    //if Success Message is not null and empty means question save successfully than set Success Message
                    if (TempData["QuestionSucessMessage"] != null && Convert.ToString(TempData["QuestionSucessMessage"]) != "")
                    {
                        objViewQuestionModel.Message      = Convert.ToString(TempData["QuestionSucessMessage"]);
                        objViewQuestionModel.MessageType  = CommonUtils.MessageType.Success.ToString().ToLower();
                        TempData["QuestionSucessMessage"] = null;
                    }
                    else if (objViewQuestionModel.QuestionDetail.IsPublish && objViewQuestionModel.QuestionDetail.QuestionID <= 0)
                    {
                        objViewQuestionModel.Message     = "Can Not Edit Document";
                        objViewQuestionModel.MessageType = CommonUtils.MessageType.Notice.ToString().ToLower();
                    }

                    StepDropDown(objViewQuestionModel.QuestionDetail.StepID, objViewQuestionModel.QuestionDetail.DocumentID);
                }
            }
            catch (Exception ex)
            {
                ErrorLog(ex, "Question", "SaveQuestion Get");
            }
            return(View("SaveQuestion", objViewQuestionModel));
        }