Exemple #1
0
        public ActionResult RecentQuestions(Guid ownerId)
        {
            IList <QuestionListModel> models = new ListStack <QuestionListModel>();
            var context = new StackOverflowContext();
            var que = context.Questions.Include(r => r.Owner).OrderByDescending(y => y.CreationDate).ToList();
            int i, count = 0;

            for (i = 0; i < que.Count; i++)
            {
                if (count >= 5 || que.ElementAt(i).Owner.Id != ownerId)
                {
                    break;
                }
                QuestionListModel model = new QuestionListModel();
                model.Title        = que.ElementAt(i).Title;
                model.Votes        = que.ElementAt(i).Votes;
                model.CreationTime = que.ElementAt(i).CreationDate;
                model.OwnerName    = que.ElementAt(i).Owner.Name;
                model.QuestionId   = que.ElementAt(i).Id;
                model.OwnerId      = que.ElementAt(i).Owner.Id;
                model.Views        = que.ElementAt(i).NumberOfViews;
                var trimmed   = que.ElementAt(i).Description.Trim();
                var substring = trimmed.Substring(0, Math.Min(10, trimmed.Length));
                model.QuestionPreview = substring + "...";
                count++;
                models.Add(model);
            }
            return(PartialView(models));
        }
        private QuestionListModel CreateQuestionListModel(Question question)
        {
            var model = new QuestionListModel
            {
                Title        = question.Title,
                Body         = question.Body,
                Score        = question.Score,
                CreationDate = question.CreationDate,

                User = new UserModel()
                {
                    ID          = question.User.ID,
                    DisplayName = question.User.DisplayName,
                },
                PostTags = question.PostTags.Select(tag => new PostTagModel()
                {
                    Tag = tag.Tag,
                }).ToList(),
                //Notes = question.Notes.Select(note => new NoteModel()
                //{
                //    Text = note.Text,
                //    Type = note.Post.PostType == 1 ? "Question" : "Answer",
                //    Title = note.Post.Title,
                //    PostID = note.PostID,
                //}).ToList(),
            };

            model.Url = CreateQuestionLink(question.ID);
            return(model);
        }
Exemple #3
0
        public ActionResult List()
        {
            QuestionListModel model = new QuestionListModel();

            List <RekruQuestion> questions = _questionSrv.GetQuestions();

            model.Questions = _mapper.Map <List <QuestionModel> >(questions);

            return(View(model));
        }
Exemple #4
0
        /*
         * Handlers for external events
         */
        #region external_events

        private void OnQuestionsDomainsUpdated(QuestionListModel model)
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            if (this.InvokeRequired)
            {
                this.Invoke((QuestionListController.ExternalEventHandler)
                            OnQuestionsDomainsUpdated, model);
                return;
            }

            //myQuestionsListBox.DataSource = model.Current_my_questions;
            List <QuestionData> truncate = new List <QuestionData>();

            truncate = model.Current_my_questions;
            for (int i = 0; i < truncate.Count; i++)
            {
                if (truncate[i].Title.Length > QuestionData.TitleTruncate)
                {
                    truncate[i].Title = truncate[i].Title.Substring(0, QuestionData.TitleTruncate) + "...";
                }
            }
            myQuestionsListBox.DataSource = truncate;
            for (int i = 0; i < myQuestionsListBox.Items.Count; i++)
            {
                myQuestionsListBox.SetSelected(i, false);
            }
            myQuestionsListBox.Refresh();

            if (model.State == QuestionListModel.QUESTIONLIST)
            {
                truncate = model.Current_all_questions;
                for (int i = 0; i < truncate.Count; i++)
                {
                    if (truncate[i].Title.Length > QuestionData.TitleTruncate)
                    {
                        truncate[i].Title = truncate[i].Title.Substring(0, QuestionData.TitleTruncate) + "...";
                    }
                }
                domainsListBox.DataSource = truncate;
            }
            else
            {
                domainsListBox.DataSource = model.Domains;
            }
            for (int i = 0; i < domainsListBox.Items.Count; i++)
            {
                domainsListBox.SetSelected(i, false);
            }
            domainsListBox.Refresh();
        }
        /// <summary>
        /// Prepare paged product list model
        /// </summary>
        /// <param name="searchModel">Product search model</param>
        /// <returns>Product list model</returns>
        public virtual QuestionListModel PrepareQuestionListModel(QuestionSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get parameters to filter comments
            var overridePublished = searchModel.SearchPublishedId == 0 ? null : (bool?)(searchModel.SearchPublishedId == 1);
            var categoryIds       = new List <int> {
                searchModel.SearchCategoryId
            };

            if (searchModel.SearchIncludeSubCategories && searchModel.SearchCategoryId > 0)
            {
                var childCategoryIds = _categoryService.GetChildCategoryIds(parentCategoryId: searchModel.SearchCategoryId, showHidden: true);
                categoryIds.AddRange(childCategoryIds);
            }

            //get products
            var questions = _questionService.GetAllQuestions(searchModel.SearchQuestionName,
                                                             categoryIds: categoryIds,
                                                             questionType: searchModel.SearchQuestionTypeId > 0 ? (QuestionType?)searchModel.SearchQuestionTypeId : null,
                                                             pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize,
                                                             overridePublished: overridePublished);

            //prepare list model
            var model = new QuestionListModel().PrepareToGrid(searchModel, questions, () =>
            {
                return(questions.Select(product =>
                {
                    //fill in model values from the entity
                    var questionModel = product.ToModel <QuestionModel>();
                    questionModel.QuestionTypeName = product.QuestionType.ToString();
                    return questionModel;
                }));
            });

            return(model);
        }
Exemple #6
0
        private QuestionListModel CreateQuestionListModel(Question question)
        {
            var model = new QuestionListModel
            {
                Title        = question.Title,
                Body         = question.Body.Substring(0, 100) + "...",
                Score        = question.Score,
                CreationDate = question.CreationDate,

                User = new UserModel()
                {
                    ID          = question.User.ID,
                    DisplayName = question.User.DisplayName,
                },
                PostTags = question.PostTags.Select(tag => new PostTagModel()
                {
                    Tag = tag.Tag,
                }).ToList()
            };

            model.Url = CreateQuestionLink(question.ID);
            return(model);
        }
        // GET: Question
        public ActionResult Index(int id)
        {
            try
            {
                using (var dataContext = new HuntingEntities())
                {
                    var user = AclUserContext.GetDetail(dataContext, User.Identity.Name);
                    if (user == null)
                    {
                        ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Warning, GlobalRes.ERROR_NOT_ALLOWED);
                        return(RedirectToAction("Index", "Home"));
                    }
                    var questionnaire = QuestionnaireContext.GetDetail(dataContext, id);
                    if (questionnaire == null)
                    {
                        ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Warning, GlobalRes.ERROR_NOT_FOUND);
                        return(RedirectToAction("Index", "Home"));
                    }
                    if (user.CanUpdateTerritory(questionnaire.MapItemType.Territory) == false)
                    {
                        ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Warning, GlobalRes.ERROR_NOT_ALLOWED);
                        return(RedirectToAction("Index", "Territory", new { id = questionnaire.MapItemType.TerritoryId }));
                    }

                    var itemList = QuestionContext.GetList(dataContext, questionnaire);
                    var model    = new QuestionListModel(questionnaire, itemList);
                    return(View(model));
                }
            }
            catch (Exception exception)
            {
                logger.Error(exception, "QuestionController");
                ContextUtils.CreateActionStateCookie(Response, ActionTypeEnum.Danger, GlobalRes.ERROR_EXCEPTION);
                return(RedirectToAction("Index", "Home"));
            }
        }
Exemple #8
0
        public ActionResult Index(int start = 0, int type = 0)
        {
            IList <QuestionListModel> models = new ListStack <QuestionListModel>();
            var             context          = new StackOverflowContext();
            var             context2         = new StackOverflowContext();
            List <Question> que = new List <Question>();

            switch (type)
            {
            case 0:
                que = context.Questions.Include(r => r.Owner)
                      .OrderByDescending(x => x.CreationDate).ToList();
                break;

            case 1:
                que = context.Questions.Include(r => r.Owner)
                      .OrderByDescending(x => x.NumberOfViews).ToList();
                break;

            case 2:
                que = context.Questions.Include(r => r.Owner)
                      .OrderByDescending(x => x.Votes).ToList();
                break;

            case 3:
                que = context.Questions.Include(r => r.Owner)
                      .OrderByDescending(x => x.CreationDate).ToList();
                break;
            }

            var hasAvailable = true;
            //foreach (Question q in que)
            //{
            //    QuestionListModel model = new QuestionListModel();
            //    model.Title = q.Title;
            //    model.Votes = q.Votes;
            //    model.CreationTime = q.CreationDate;
            //    model.OwnerName = q.Owner.Name;
            //    model.QuestionId = q.Id;
            //    model.OwnerId = q.Owner.Id;
            //    models.Add(model);
            //}
            int i;

            for (i = 0; i < start + 25; i++)
            {
                if (i == que.Count)
                {
                    hasAvailable = false;
                    break;
                }
                QuestionListModel model = new QuestionListModel();
                model.Title        = que.ElementAt(i).Title;
                model.Votes        = que.ElementAt(i).Votes;
                model.CreationTime = que.ElementAt(i).CreationDate;
                model.OwnerName    = que.ElementAt(i).Owner.Name;
                model.QuestionId   = que.ElementAt(i).Id;
                model.OwnerId      = que.ElementAt(i).Owner.Id;
                model.Views        = que.ElementAt(i).NumberOfViews;
                var trimmed   = que.ElementAt(i).Description.Trim();
                var substring = trimmed.Substring(0, Math.Min(10, trimmed.Length));
                model.AnswerCount     = AnswerCount(model.QuestionId);
                model.QuestionPreview = substring + "...";
                models.Add(model);
            }
            start                    = i;
            ViewData["start"]        = start.ToString();
            ViewData["hasAvailable"] = hasAvailable;
            return(View(models));
        }