public async Task <ActionResult> send_new_entry(Newsletter newsletter) // send_new_entry
        {
            token = db.People.Find(0).last_name;                               // secret token fetch from DB
            discord.start(token);
            ViewData["value"] = newsletter.newest_message + "\nmessage sent!";
            //ViewBag.Message = newsletter.content + "\nmessage sent!";
            int id = Int32.Parse(Session["UserID"].ToString());

            newsletter.fk_Personid_Person = id;

            // 1. update the approriate sub's content with the newest one.
            int newsletter_id = newsletter.update();

            subs.fk_Newsletterid_Newsletter = newsletter_id;

            // 2. select all subed_newsletter who sub'd to this newsletter
            List <Subscription> subs_temp = subs.select_subscribers();

            int    count = subs_temp.Count();
            string str1  = "";

            if (id >= 0)
            {
                str1 = "Successfully sent your message! Total subs receiving this message: " + count;
            }
            else
            {
                str1            = "Message send failed!";
                ViewBag.Message = str1;
                return(View("NewsletterForm"));
            }

            if (newsletter.newest_message == "" || newsletter.newest_message == null)
            {
                str1            = "Only non-empty messages may be sent!";
                ViewBag.Message = str1;
                return(View("NewsletterForm"));
            }

            // 3. select receit forms from users
            List <string> receit_forms = person.select_receit_forms(subs_temp);


            // 3. generate newsletter_entries
            int message_count = entries.insert(newsletter, subs_temp, receit_forms);



            // 4. reselect all the entries that are not sent out yet
            List <Newsletter_entry> entries_to_send = entries.select(newsletter_id);
            int total = entries_to_send.Count();

            str1           += "\n Total getting sent out: " + total;
            bool[,] replies = new bool[total, 2];
            // 5. initiate the sending sequence below

            for (int i = 0; i < total; i++)
            {
                var rep1    = false;
                var rep2    = false;
                var thread1 = new Thread(() =>
                {
                    rep1 = send_discord(entries_to_send[i], newsletter.newest_message);
                });

                var thread2 = new Thread(() =>
                {
                    rep2 = send_email(entries_to_send[i], newsletter.newest_message);
                });
                thread1.Start();
                thread2.Start();
                thread1.Join();
                thread2.Join();
                replies[i, 0] = rep1;
                replies[i, 1] = rep2;
                Console.Write("hi");
            }

            ViewBag.Message = str1;
            return(View("NewsletterForm"));
        }