public ActionResult CreatePoll(string question) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); if (!String.IsNullOrEmpty(question)) { try { Poll poll = new Poll { QuestionText = question, Path = question.ToUrlFormat(), AddedBy = User.Identity.Name, AddedDate = DateTime.Now }; dc.Polls.InsertOnSubmit(poll); dc.SubmitChanges(); TempData["SuccessMessage"] = "Your poll has been created."; return RedirectToAction("EditPoll", new { pollId = poll.PollID }); } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; } } ViewData["question"] = question; ViewData["PageTitle"] = "Create Poll"; return View("CreatePoll"); }
public ActionResult CreateNewsletter(string subject, string body) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); if (!String.IsNullOrEmpty(subject) && !String.IsNullOrEmpty(body)) { Newsletter newsletter = new Newsletter() { AddedDate = DateTime.Now, AddedBy = User.Identity.Name, Status = "Queued", Subject = subject, HtmlBody = body, PlainTextBody = body }; dc.Newsletters.InsertOnSubmit(newsletter); dc.SubmitChanges(); Thread thread = new Thread(new ParameterizedThreadStart(SendNewsletter)); thread.Priority = ThreadPriority.BelowNormal; thread.Start(new object[] { newsletter, dc }); return RedirectToAction("ManageNewsletters"); } ViewData["PageTitle"] = "Create Newsletter"; return View(new Newsletter()); }
public ActionResult EditNewsletter(int? newsletterId, string subject, string body) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var newsletter = dc.Newsletters.FirstOrDefault(n => n.NewsletterID == newsletterId); if (newsletter == null) throw new HttpException(404, "The newsletter could not be found."); if (!String.IsNullOrEmpty(subject) && !String.IsNullOrEmpty(body)) { newsletter.Subject = subject; newsletter.HtmlBody = body; newsletter.PlainTextBody = body; dc.SubmitChanges(); Thread thread = new Thread(new ParameterizedThreadStart(SendNewsletter)); thread.Priority = ThreadPriority.BelowNormal; thread.Start(new object[] { newsletter, dc }); return RedirectToAction("ManageNewsletters", "Newsletter"); } ViewData["PageTitle"] = "Edit Newsletter"; return View("CreateNewsletter", newsletter); }
/// <summary> /// Categories the index. /// </summary> /// <returns></returns> public ActionResult CategoryIndex() { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Categories.GetCategories(); ViewData["PageTitle"] = "All Categories"; return View(viewData); }
public ActionResult AddOption(int pollId, string text) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var poll = dc.Polls.GetPoll(pollId); if (poll == null) throw new HttpException(404, "The poll could not be found."); var option = new PollOption { AddedBy = User.Identity.Name, AddedDate = DateTime.Now, OptionText = text, Votes = 0 }; poll.PollOptions.Add(option); dc.SubmitChanges(); return View(new { optionId = option.OptionID, text = text }); }
/// <summary> /// Rates the article. /// </summary> /// <param name="articleId">The article id.</param> /// <param name="rating">The rating.</param> /// <returns></returns> //[ServiceOnly, HttpPostOnly] public ActionResult RateArticle(int articleId, int rating) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Article viewData = dc.Articles.GetArticle(articleId); try { viewData.Rate(rating); dc.SubmitChanges(); } catch { /* ignore all conflicts because this action isn't critical */ } return View(new { articleId = articleId, averageRating = viewData.AverageRating }); }
public ActionResult ManageComments(int page) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Comments.GetCommentsForModeration(page); ViewData["PageTitle"] = "Manage Comments"; return View(viewData); }
public ActionResult ManageArticles(int page) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Articles.GetArticles(null, page); ViewData["PageTitle"] = "Manage Articles"; return View(viewData); }
/// <summary> /// Indexes the specified category. /// </summary> /// <param name="category">The category.</param> /// <param name="page">The page.</param> /// <returns></returns> public ActionResult Index(string category, int page) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Articles.GetPublishedArticles(category, page); var viewCategory = dc.Categories.GetCategory(category); ViewData["Categories"] = dc.Categories.GetCategories(); ViewData["PageTitle"] = (viewCategory != null ? viewCategory.Title : "All") + " Articles"; return View(viewData); }
public ActionResult Vote(int optionId) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var option = dc.PollOptions.GetPollOption(optionId); if (option == null) throw new HttpException(404, "The poll option could not be found."); var poll = option.Poll; var options = new List<object>(); if (poll.IsArchived || Request.Cookies["poll_" + poll.PollID] == null) { option.Votes++; dc.SubmitChanges(); } foreach (var o in poll.PollOptions) options.Add(new { optionId = o.OptionID, text = o.OptionText, votes = o.Votes }); return View(new { pollId = poll.PollID, total = poll.PollOptions.Sum(o => o.Votes), question = poll.QuestionText, options = options }); }
/// <summary> /// Views the specified id. /// </summary> /// <param name="id">The id.</param> /// <param name="path">The path.</param> /// <returns></returns> public ActionResult ViewArticle(int id, string path) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Article viewData = dc.Articles.GetArticle(id); // throw a 404 Not Found if the requested article is not in the database if (viewData == null) throw new HttpException(404, "The article could not be found."); // SEO: redirect to the correct location if the path is not if (!String.Equals(path, viewData.Path, StringComparison.OrdinalIgnoreCase)) return this.RedirectToAction(301, "View", new { id = viewData.ArticleID, path = viewData.Path }); // make sure the article is only viewed by members with permissions if (viewData.OnlyForMembers && HttpContext.User != null && HttpContext.User.Identity != null && !HttpContext.User.Identity.IsAuthenticated) throw new HttpException(401, "The articles is only viewable for members."); // update the view count try { viewData.ViewCount++; dc.SubmitChanges(); } catch { /* ignore all conflicts because this action isn't critical */ } ViewData["PageTitle"] = viewData.Title; return View(viewData); }
public ActionResult CreateArticle(int? categoryId, string title, string summary, string body, string country, string state, string city, DateTime? releaseDate, DateTime? expireDate, bool? approved, bool? listed, bool? commentsEnabled, bool? onlyForMembers) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var categories = dc.Categories.GetCategories(); if (categoryId.HasValue && !String.IsNullOrEmpty(title) && !String.IsNullOrEmpty(body)) { try { Article article = new Article { CategoryID = categoryId.Value, Title = title, Path = title.ToUrlFormat(), Abstract = summary, Body = body, Country = country, State = state, City = city, ReleaseDate = releaseDate ?? DateTime.Today, ExpireDate = expireDate, Approved = approved ?? false, Listed = listed ?? false, CommentsEnabled = commentsEnabled ?? false, OnlyForMembers = onlyForMembers ?? false, AddedBy = User.Identity.Name, AddedDate = DateTime.Now }; dc.Articles.InsertOnSubmit(article); dc.SubmitChanges(); TempData["SuccessMessage"] = "Your article has been posted."; return RedirectToAction("ViewArticle", new { id = article.ArticleID, path = article.Path }); } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; } } ViewData["categoryId"] = new SelectList(categories, "CategoryID", "Title", categoryId); ViewData["title"] = title; ViewData["summary"] = summary; ViewData["body"] = body; ViewData["country"] = new SelectList(Iso3166CountryCodes.CountryDictonary, "Key", "Value", country ?? "US"); ViewData["state"] = state; ViewData["city"] = city; ViewData["releaseDate"] = releaseDate; ViewData["expireDate"] = expireDate; ViewData["approved"] = approved; ViewData["listed"] = listed; ViewData["commentsEnabled"] = commentsEnabled; ViewData["onlyForMembers"] = onlyForMembers; ViewData["PageTitle"] = "Create Article"; return View("CreateArticle"); }
public ActionResult EditArticle(int articleId, int? categoryId, string title, string summary, string body, string country, string state, string city, DateTime? releaseDate, DateTime? expireDate, bool? approved, bool? listed, bool? commentsEnabled, bool? onlyForMembers) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var categories = dc.Categories.GetCategories(); if (IsPostBack) { approved = approved ?? false; listed = listed ?? false; commentsEnabled = commentsEnabled ?? false; onlyForMembers = onlyForMembers ?? false; } Article article = dc.Articles.GetArticle(articleId); // throw a 404 Not Found if the requested article is not in the database if (article == null) throw new HttpException(404, "The article could not be found."); if (categoryId.HasValue && !String.IsNullOrEmpty(title) && !String.IsNullOrEmpty(body)) { try { article.CategoryID = categoryId.Value; article.Title = title; article.Abstract = summary; article.Body = body; article.Country = country; article.State = state; article.City = city; article.ReleaseDate = releaseDate ?? article.ReleaseDate; article.ExpireDate = expireDate; article.Approved = approved ?? false; article.Listed = listed ?? false; article.CommentsEnabled = commentsEnabled ?? false; article.OnlyForMembers = onlyForMembers ?? false; dc.SubmitChanges(); TempData["SuccessMessage"] = "Your article has been updated."; } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; } } ViewData["categoryId"] = new SelectList(categories, "CategoryID", "Title", categoryId ?? article.CategoryID); ViewData["title"] = title ?? article.Title; ViewData["summary"] = summary ?? article.Abstract; ViewData["body"] = body ?? article.Body; ViewData["country"] = new SelectList(Iso3166CountryCodes.CountryDictonary, "Key", "Value", country ?? article.Country ?? "US"); ViewData["state"] = state ?? article.State; ViewData["city"] = city ?? article.City; ViewData["releaseDate"] = releaseDate ?? article.ReleaseDate; ViewData["expireDate"] = expireDate ?? article.ExpireDate; ViewData["approved"] = approved ?? article.Approved; ViewData["listed"] = listed ?? article.Listed; ViewData["commentsEnabled"] = commentsEnabled ?? article.CommentsEnabled; ViewData["onlyForMembers"] = onlyForMembers ?? article.OnlyForMembers; ViewData["PageTitle"] = "Edit Article"; return View("CreateArticle"); }
public ActionResult CreateComment(int articleId, string name, string email, string body) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Article article = dc.Articles.GetArticle(articleId); // throw a 404 Not Found if the requested article is not in the database if (article == null) throw new HttpException(404, "The article could not be found."); Comment comment = new Comment { AddedBy = name, AddedByEmail = email, AddedByIP = Request.UserHostAddress, AddedDate = DateTime.Now, Body = body }; article.Comments.Add(comment); // save changes to database dc.SubmitChanges(); return View(new { commentId = comment.CommentID, name = comment.AddedBy, body = comment.Body }); }
public ActionResult CreateCategory(string title, int? importance, string imageUrl, string description) { if (!String.IsNullOrEmpty(title) && !String.IsNullOrEmpty(imageUrl) && !String.IsNullOrEmpty(description)) { try { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Category category = new Category { Title = title, Importance = importance ?? -1, ImageUrl = imageUrl, Description = description, AddedBy = User.Identity.Name, AddedDate = DateTime.Now, Path = title.ToUrlFormat() }; dc.Categories.InsertOnSubmit(category); // save changes to database dc.SubmitChanges(); TempData["SuccessMessage"] = "Your category has been created."; return RedirectToAction("ManageArticles"); } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; } } ViewData["categorytitle"] = title; ViewData["importance"] = importance; ViewData["imageUrl"] = imageUrl; ViewData["description"] = description; ViewBag.Title = "Create Category"; return View("CreateCategory"); }
public static SelectList GetLanguageList(String language) { TheBeerHouseDataContext dataContext = new TheBeerHouseDataContext(); var Languages = from languageList in dataContext.Languages orderby languageList.LanguageName select languageList; return new SelectList(Languages, "LanguageName", "LanguageName", language ?? "English"); }
public static SelectList GetOccupationList(String occupation) { TheBeerHouseDataContext dataContext = new TheBeerHouseDataContext(); var Occupations = from occupationList in dataContext.Occupations orderby occupationList.OccupationName select occupationList; return new SelectList(Occupations, "OccupationName", "OccupationName", occupation ?? "Business Owner"); }
public ActionResult EditOption(int optionId, string text) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var option = dc.PollOptions.GetPollOption(optionId); if (option == null) throw new HttpException(404, "The poll option could not be found."); option.OptionText = text; dc.SubmitChanges(); return View(new { optionId = option.OptionID, text = text }); }
public ActionResult RemoveArticle(int articleId, string remove) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Article article = dc.Articles.GetArticle(articleId); // throw a 404 Not Found if the requested article is not in the database if (article == null) throw new HttpException(404, "The article could not be found."); if (String.Equals(remove, "yes", StringComparison.OrdinalIgnoreCase)) { dc.Articles.DeleteOnSubmit(article); dc.SubmitChanges(); TempData["SuccessMessage"] = "The article, " + article.Title + ", has been deleted."; article = null; } else if (String.Equals(remove, "no", StringComparison.OrdinalIgnoreCase)) { TempData["InformationMessage"] = "The article, " + article.Title + ", has NOT been deleted."; } else { TempData["WarningMessage"] = "Are you sure you want to delete " + article.Title + ". You will not be able to recover this article if you select YES."; } ViewData["PageTitle"] = "Remove Article"; return View(article); }
public ActionResult RemoveNewsletter(int? newsletterId) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var newsletter = dc.Newsletters.FirstOrDefault(n => n.NewsletterID == newsletterId); if (newsletter == null) throw new HttpException(404, "The newsletter could not be found."); dc.Newsletters.DeleteOnSubmit(newsletter); dc.SubmitChanges(); return RedirectToAction("ManageNewsletters"); }
public ActionResult RemoveCategory(int categoryId, int? newCategoryId, string remove) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var categories = dc.Categories.GetCategories(); Category category = dc.Categories.GetCategory(categoryId); bool newCategoryExists = categoryId != newCategoryId && dc.Categories.Exists(newCategoryId ?? -1); // throw a 404 Not Found if the requested category is not in the database if (category == null) throw new HttpException(404, "The category could not be found."); if (String.Equals(remove, "yes", StringComparison.OrdinalIgnoreCase) && newCategoryExists) { foreach (Article article in category.Articles) article.CategoryID = newCategoryId.Value; dc.Categories.DeleteOnSubmit(category); dc.SubmitChanges(); TempData["SuccessMessage"] = "The category, " + category.Title + ", has been deleted."; category = null; } else if (String.Equals(remove, "no", StringComparison.OrdinalIgnoreCase)) { TempData["InformationMessage"] = "The category, " + category.Title + ", has NOT been deleted."; } else { ViewData["newCategoryId"] = new SelectList(categories, "CategoryID", "Title", newCategoryId); TempData["WarningMessage"] = "Are you sure you want to delete " + category.Title + ". If you are sure please select a new category to move all the articles to and then select YES."; } ViewData["PageTitle"] = "Remove Category"; return View(category); }
public ActionResult SetArchived(int pollId, bool archive) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var poll = dc.Polls.GetPoll(pollId); if (poll == null) throw new HttpException(404, "The poll could not be found."); poll.IsArchived = archive; poll.ArchivedDate = archive ? DateTime.Now : (DateTime?)null; dc.SubmitChanges(); return View(new { pollId = pollId, isArchived = poll.IsArchived }); }
public ActionResult RemoveComment(int commentId) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Comment comment = dc.Comments.GetComment(commentId); // throw a 404 Not Found if the requested article is not in the database if (comment == null) throw new HttpException(404, "The comment could not be found."); dc.Comments.DeleteOnSubmit(comment); dc.SubmitChanges(); return View(new { commentId = commentId }); }
public ActionResult RemovePoll(int pollId, string remove) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Poll poll = dc.Polls.GetPoll(pollId); // throw a 404 Not Found if the requested poll is not in the database if (poll == null) throw new HttpException(404, "The poll could not be found."); if (String.Equals(remove, "yes", StringComparison.OrdinalIgnoreCase)) { dc.Polls.DeleteOnSubmit(poll); dc.SubmitChanges(); TempData["SuccessMessage"] = "The poll, " + poll.QuestionText + ", has been deleted."; poll = null; } else if (String.Equals(remove, "no", StringComparison.OrdinalIgnoreCase)) { TempData["InformationMessage"] = "The poll, " + poll.QuestionText + ", has NOT been deleted."; } else { TempData["WarningMessage"] = "Are you sure you want to delete " + poll.QuestionText + ". You will not be able to recover this poll if you select YES."; } ViewData["PageTitle"] = "Remove Poll"; return View(poll); }
public ActionResult ManageNewsletters() { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Newsletters.OrderByDescending(n => n.AddedDate); ViewData["PageTitle"] = "Manage Newsletters"; return View(viewData); }
public ActionResult SetCurrent(int pollId) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var poll = dc.Polls.GetPoll(pollId); if (poll == null) throw new HttpException(404, "The poll could not be found."); // reset all polls to not current dc.ExecuteCommand("update TheBeerHouse.Polls set IsCurrent = 0;", new object[0]); poll.IsCurrent = true; dc.SubmitChanges(); return View(new { pollId = pollId }); }
public ActionResult UpdateStatus() { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var viewData = dc.Newsletters.OrderByDescending(n => n.AddedDate); return PartialView("Newsletter/NewsletterStatus", viewData); }
public ActionResult EditCategory(int categoryId, string title, int? importance, string imageUrl, string description) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Category category = dc.Categories.GetCategory(categoryId); // throw a 404 Not Found if the requested category is not in the database if (category == null) throw new HttpException(404, "The category could not be found."); if (!String.IsNullOrEmpty(title) && !String.IsNullOrEmpty(imageUrl) && !String.IsNullOrEmpty(description)) { try { category.Title = title; category.Importance = importance ?? -1; category.ImageUrl = imageUrl; category.Description = description; // save changes to database dc.SubmitChanges(); TempData["SuccessMessage"] = "Your category has been updated."; } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; } } ViewData["categorytitle"] = title ?? category.Title; ViewData["importance"] = importance ?? category.Importance; ViewData["imageUrl"] = imageUrl ?? category.ImageUrl; ViewData["description"] = description ?? category.Description; ViewBag.Title = "Edit Category"; return View("CreateCategory"); }
public ActionResult EditComment(int commentId, string name, string body) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); Comment comment = dc.Comments.GetComment(commentId); // throw a 404 Not Found if the requested article is not in the database if (comment == null) throw new HttpException(404, "The comment could not be found."); comment.AddedBy = name; comment.Body = body; // save changes to database dc.SubmitChanges(); return View(new { commentId = comment.CommentID, name = comment.AddedBy, body = comment.Body }); }
public ActionResult RemoveOption(int optionId) { TheBeerHouseDataContext dc = new TheBeerHouseDataContext(); var option = dc.PollOptions.GetPollOption(optionId); if (option == null) throw new HttpException(404, "The poll option could not be found."); dc.PollOptions.DeleteOnSubmit(option); dc.SubmitChanges(); return View(new { optionId = optionId }); }