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); }
public ActionResult List() { QuestionListModel model = new QuestionListModel(); List <RekruQuestion> questions = _questionSrv.GetQuestions(); model.Questions = _mapper.Map <List <QuestionModel> >(questions); return(View(model)); }
/* * 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); }
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")); } }
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)); }