public async Task<ActionResult> NewQuote(QuoteViewModel vm)
 {
     using (var dbContext = new DatabaseContext())
     {
         var quote = new Quote
         {
             Text = vm.Text,
             Submitter = dbContext.Users.Single(u => u.UserName == User.Identity.Name),
             CreatedAt = DateTime.Now,
             Tags = new List<Tag>()
         };
         var user = dbContext.Users.SingleOrDefault(x => x.UserName == vm.Author);
         if (user != null)
         {
             quote.Author = user;
         }
         else
         {
             quote.AlternateAuthor = String.IsNullOrWhiteSpace(vm.Author) ? "Anonymous" : vm.Author;
         }
         dbContext.Quotes.Add(quote);
         vm = new QuoteViewModel(quote);
         await dbContext.SaveChangesAsync();
         QuotesHub.NewQuote(quote);
     }
     return PartialView("_Quote", vm);
 }
        public static void NewQuote(Quote q)
        {
            var quoteVM = new QuoteViewModel(q);
            var page = Render("_Quote", "Quotes", quoteVM);
            _context.Value.Clients.All.newQuote(page);

            var wc = new WebClient();
            var jsonObject = new JObject();
            jsonObject["channel"] = "#banter";
            jsonObject["username"] = "******";
            jsonObject["text"] = $"> {q.Text}\n - {quoteVM.Author} {q.CreatedAt.Year}\n(Created by {q.Submitter.UserName} {q.CreatedAt.ToPrettyInterval()})";
            jsonObject["icon_emoji"] = ":kappa:";
            wc.UploadString(ConfigurationManager.ConnectionStrings["Slack-Banter"].ConnectionString, "POST", jsonObject.ToString());
        }