public IActionResult AssignReviewer(int id, IList <string> reviewersEmails)
        {
            // id = ArticleId
            if (id == 0)
            {
                TempData["title"]       = "Error Occured";
                TempData["description"] = "Error Description";
                return(RedirectToAction("error", "home"));
            }
            else if (reviewersEmails.Count == 0)
            {
                TempData["err"] = "Atleast Select One User To Review";
                return(RedirectToAction("article", new { id = id }));
            }
            else if (reviewersEmails.Count != reviewersEmails.Distinct().Count())
            {
                TempData["err"] = "Email Repeated Twice";
                return(RedirectToAction("article", new { id = id }));
            }

            IList <Invitation> alreadyInvitedList = dbContext.invitations.Include(ar => ar.User).Where(a => a.ArticleId == id).ToList();

            foreach (string email in reviewersEmails)
            {
                if (alreadyInvitedList.SingleOrDefault(a => a.User.Email.Equals(email)) == null)
                {
                    Invitation invitation = new Invitation()
                    {
                        ArticleId             = id,
                        UserId                = dbContext.Users.SingleOrDefault(u => u.Email == email).Id,
                        status                = "pending",
                        readByAssociateEditor = false,
                        readByAuthor          = false
                    };
                    dbContext.invitations.Add(invitation);

                    CustomEmailService emailService = new CustomEmailService();
                    emailService.sendEmail(
                        "*****@*****.**",
                        "zkpagebuyerandseller",
                        email,
                        "Invitaion To Review An Article",
                        "You're invited To Review An Article Please Login To BJMS Portal For Detail"
                        );
                }
            }

            foreach (Invitation invitation1 in alreadyInvitedList)
            {
                if (!reviewersEmails.Contains(invitation1.User.Email))
                {
                    dbContext.invitations.Remove(invitation1);
                }
            }
            dbContext.SaveChanges();

            return(RedirectToAction("index"));
        }
 public void sendEmailToAuthors(List <string> emails)
 {
     foreach (var email in emails)
     {
         CustomEmailService emailService = new CustomEmailService();
         emailService.sendEmail(
             "*****@*****.**",
             "zkpagebuyerandseller",
             email,
             "your registered",
             "Success"
             );
     }
 }