public string GetAnswers() { try { var userId = Request.Params["userId"]; var context = new ApplicationDbContext(); var user = context.Users.FirstOrDefault(u => u.Id == userId); if (user != null) { var contextForum = new ForumEntities(); int answerCount = contextForum.Answers.Count(a => a.AuthorId == userId); if (answerCount == 0) { return "No Questions"; } else if (answerCount == 1) { return "1 answer"; } else { return answerCount + " answers"; } } else { throw new ArgumentException("User not found"); } } catch (Exception) { throw; } }
public IQueryable<ForumApp.Models.Question> ListViewQuestions_GetData() { try { var categoryId = int.Parse(Request.Params["categoryId"]); var context = new ForumEntities(); var category = context.Categories.FirstOrDefault(c => c.Id == categoryId); if (category != null) { var questions = category.Questions.OrderByDescending(x => x.PostedDate); return questions.AsQueryable(); } else { throw new ArgumentException("Category not found"); } } catch (Exception) { throw; } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable<ForumApp.Models.Question> ListViewQuestions_GetData() { ForumEntities context = new ForumEntities(); var questions = context.Questions.OrderByDescending(x => x.PostedDate); return questions; }
// The id parameter name should match the DataKeyNames value set on the control public void FormViewQuestion_UpdateItem(int id) { try { var context = new ForumEntities(); ForumApp.Models.Question item = context.Questions.FirstOrDefault(a => a.Id == id); // Load the item here, e.g. item = MyDataLayer.Find(id); if (item == null) { // The item wasn't found ModelState.AddModelError("", String.Format("Item with id {0} was not found", id)); return; } TryUpdateModel(item); if (ModelState.IsValid) { // Save changes here, e.g. MyDataLayer.SaveChanges(); context.Entry(item).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); } ErrorSuccessNotifier.AddInfoMessage("Question successfuly edited!"); } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage("Server Error: " + ex.Message); } }
protected void Page_PreRender(object sender, EventArgs e) { ForumEntities context = new ForumEntities(); this.DropDownListCategory.DataSource = context.Categories.ToList(); this.DropDownListCategory.SelectedIndex = 0; this.DropDownListCategory.DataBind(); }
protected void Page_PreRender(object sender, EventArgs e) { ForumEntities context = new ForumEntities(); var categories = context.Categories.ToList(); this.RepeaterCategories.DataSource = categories; this.RepeaterCategories.DataBind(); this.AddCategoryPanel.Visible = this.IsAdminInRole(); }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable<ForumApp.Models.Question> ListViewOpenedQuestions_GetData([Control] string byUser) { ForumApp.Models.ForumEntities context = new Models.ForumEntities(); var questions = context.Questions.Where(x => x.Answers.Count == 0).OrderBy(x => x.PostedDate); if (byUser != null) { questions = questions.Where(x => x.AspNetUser.UserName == byUser).OrderBy(x => x.PostedDate); } return questions; }
protected void Save_Click(object sender, EventArgs e) { try { ForumEntities context = new ForumEntities(); var currentCat = context.Categories.Find(Id); currentCat.Title = this.CatNameTb.Text; context.SaveChanges(); Response.Redirect("~/Categories.aspx", false); Error_Handler_Control.ErrorSuccessNotifier.AddSuccessMessage("Successfuly edited"); Error_Handler_Control.ErrorSuccessNotifier.ShowAfterRedirect = true; } catch (Exception ex) { Error_Handler_Control.ErrorSuccessNotifier.AddErrorMessage("Error: " + ex.Message); } }
protected void ButtonAddQuestion_Click(object sender, EventArgs e) { string title = this.TextBoxQuestionTitle.Text; int categoryId = Convert.ToInt32(this.DropDownListCategory.SelectedValue); string content = this.TextBoxContent.Text; if (title.Length < 6) { ErrorSuccessNotifier.AddErrorMessage("Title length must be at least 6 chars!"); } else if (content.Length < 10) { ErrorSuccessNotifier.AddErrorMessage("Content length must be at least 10 chars!"); } else { try { ForumEntities context = new ForumEntities(); AspNetUser author = context.AspNetUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault(); ForumApp.Models.Question addedQuestion = new ForumApp.Models.Question() { Title = title, Content = content, CategoryId = categoryId, AuthorId = author.Id, PostedDate = DateTime.Now }; context.Questions.Add(addedQuestion); context.SaveChanges(); ErrorSuccessNotifier.AddSuccessMessage("Question added successfuly!"); ErrorSuccessNotifier.ShowAfterRedirect = true; Response.Redirect("~/Question?questionId=" + addedQuestion.Id); } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage("Server Error: " + ex.Message); } } }
// The id parameter should match the DataKeyNames value set on the control // or be decorated with a value provider attribute, e.g. [QueryString]int id public ForumApp.Models.Question FormViewQuestion_GetItem() { try { var questionId = int.Parse(Request.Params["questionId"]); var context = new ForumEntities(); var question = context.Questions.FirstOrDefault(q => q.Id == questionId); if (question != null) { return question; } else { throw new ArgumentException("Question not found"); } } catch (Exception) { throw; } }
protected void LinkButtonAdd_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(this.NewCatTextBox.Text)) { ErrorSuccessNotifier.AddErrorMessage("Please enter valid category name!"); } else { string catName = this.NewCatTextBox.Text; var context = new ForumEntities(); try { context.Categories.Add(new Models.Category() { Title = catName }); context.SaveChanges(); this.NewCatTextBox.Text = null; ErrorSuccessNotifier.AddSuccessMessage("Category added successfuly!"); } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage("Server error: " + ex.Message); } } }
protected void Page_PreRender(object sender, EventArgs e) { try { var categoryId = int.Parse(Request.Params["categoryId"]); var context = new ForumEntities(); var category = context.Categories.FirstOrDefault(c => c.Id == categoryId); if (category != null) { this.LiteralCategoryTitle.Text = "Recent questions in "+category.Title; } else { throw new ArgumentException("Category not found"); } } catch (Exception) { throw; } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable<ForumApp.Models.Question> ListViewQuestionsByUser_GetData() { try { var userId = Request.Params["userId"]; var context = new ApplicationDbContext(); var user = context.Users.FirstOrDefault(u => u.Id == userId); if (user != null) { var contextForum = new ForumEntities(); var activity = contextForum.Questions .Include("Answers") .Where(q => q.AuthorId == userId || q.Answers.Any(a => a.AuthorId == userId)) .OrderByDescending(q => q.PostedDate); return activity; } else { throw new ArgumentException("User not found"); } } catch (Exception) { throw; } }
protected void Page_PreRender(object sender, EventArgs e) { ForumEntities context = new ForumEntities(); int id = Id; this.CatNameTb.Text = context.Categories.Find(id).Title; }
private bool CheckAdminPermissions(string currentUsername) { using (var context = new ForumEntities()) { var user = context.AspNetUsers.FirstOrDefault(u => u.UserName == currentUsername); if (user != null) { var userAdmin = user.AspNetRoles.FirstOrDefault(r => r.Name == "Administrator"); if (userAdmin != null) { return true; } else { return false; } } else { return false; } } }
// The id parameter name should match the DataKeyNames value set on the control public void ListViewAnswers_DeleteItem(int id) { try { var questionId = int.Parse(Request.Params["questionId"]); var context = new ForumEntities(); var question = context.Questions.FirstOrDefault(q => q.Id == questionId); if (question != null) { var answer = context.Answers.FirstOrDefault(a => a.Id == id); if (answer != null) { question.Answers.Remove(answer); context.Answers.Remove(answer); context.SaveChanges(); ErrorSuccessNotifier.AddInfoMessage("Answer successfuly deleted"); } else { throw new ArgumentException("Answer not found"); } } else { throw new ArgumentException("Question not found"); } } catch (Exception) { throw; } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable<ForumApp.Models.Category> ListViewCategories_GetData() { ForumEntities context = new ForumEntities(); var categories = context.Categories; return categories; }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable<ForumApp.Models.Answer> ListViewAnswers_GetData() { try { var questionId = int.Parse(Request.Params["questionId"]); var context = new ForumEntities(); var question = context.Questions.Include("Answers").FirstOrDefault(q => q.Id == questionId); if (question != null) { return question.Answers.AsQueryable(); } else { throw new ArgumentException("Question not found"); } } catch (Exception) { throw; } }
public void ListViewAnswers_InsertItem() { var answer = new ForumApp.Models.Answer(); TryUpdateModel(answer); if (ModelState.IsValid) { try { var questionId = int.Parse(Request.Params["questionId"]); var context = new ForumEntities(); var question = context.Questions.FirstOrDefault(q => q.Id == questionId); if (question != null) { var user = context.AspNetUsers.FirstOrDefault(u => u.UserName == User.Identity.Name); if (user != null) { answer.AspNetUser = user; answer.PostedDate = DateTime.Now; question.Answers.Add(answer); context.SaveChanges(); this.ListViewAnswers.InsertItemPosition = InsertItemPosition.None; ErrorSuccessNotifier.AddSuccessMessage("Ansew added successfuly!"); } } else { throw new ArgumentException("Question not found"); } } catch (Exception ex) { ErrorSuccessNotifier.AddErrorMessage(ex.Message); } } }
// The id parameter name should match the DataKeyNames value set on the control public void ListViewAnswers_UpdateItem(int id) { var context = new ForumEntities(); ForumApp.Models.Answer item = context.Answers.FirstOrDefault(a=> a.Id==id); // Load the item here, e.g. item = MyDataLayer.Find(id); if (item == null) { // The item wasn't found ModelState.AddModelError("", String.Format("Item with id {0} was not found", id)); return; } TryUpdateModel(item); if (ModelState.IsValid) { context.Entry(item).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); } }