public ActionResult Invite(int userID)
        {
            EmailaddressesViewModel invitedemails = new EmailaddressesViewModel();

            invitedemails.UserID = userID;


            return(View(invitedemails));
        }
        public ActionResult Invite(EmailaddressesViewModel invitedemails)
        {
            if (ModelState.IsValid)
            {
                int    userid        = invitedemails.UserID;
                string invalidemails = "";

                char[] delimiters = (",: ").ToCharArray();

                List <string> emails = invitedemails.Emailaddresses.Split(delimiters).ToList();
                IUserMailer   mailer = new UserMailer();


                EmailModel emailmodel = new EmailModel();
                emailmodel.From = db.UserProfiles.Where(x => x.UserId == userid).First().UserName;

                foreach (var emailaddress in emails)
                {
                    if (IsValidEmail(emailaddress))
                    {
                        emailmodel.To = emailaddress;

                        Common.sendMail(emailmodel, EmailExist(emailaddress));
                        InsertRequestInfo(userid, emailmodel.From, emailmodel.To);
                    }
                    else
                    {
                        invalidemails = invalidemails + "," + emailaddress;
                    }
                }
                if (invalidemails == "")
                {
                    //AccountController acc = new AccountController();
                    return(RedirectPage(userid));
                }

                else
                {
                    invitedemails.Emailaddresses = invalidemails;
                }


                invitedemails.ErrorMessage = "Please correct these emailaddresses";
                return(View(invitedemails));
            }
            else
            {
                return(View());
            }
        }
        public ActionResult Invite(EmailaddressesViewModel invitedemails)
        {
            int userid = invitedemails.UserID;

            if (ModelState.IsValid)
            {
                string invalidemails  = "";
                string repeatrequests = "";

                char[] delimiters = (",: ").ToCharArray();

                List <string> emails = invitedemails.Emailaddresses.Split(delimiters).ToList();
                IUserMailer   mailer = new UserMailer();

                EmailModel emailmodel = new EmailModel();
                emailmodel.From = db.UserProfiles.Where(x => x.UserId == userid).First().UserName;
                string SenderFirstName = db.UserProfiles.Where(x => x.UserId == userid).First().FirstName;

                foreach (var emailaddress in emails)
                {
                    string email = emailaddress;

                    bool EmailExists      = db.UserProfiles.Any(x => x.UserName == email);
                    bool self             = db.UserProfiles.Any(x => x.UserName == email && x.UserId == userid);
                    int  RequestSentCount = dbmeals.ContactLists.Where(x => x.UserID == userid && x.RecipientEmailAddress == emailaddress).Count();

                    if (self)
                    {
                    }
                    else if (RequestSentCount >= 2)
                    {
                        repeatrequests = repeatrequests + "," + emailaddress;
                    }
                    else if (EmailExists)
                    {
                        var Recipient = db.UserProfiles.Where(x => x.UserName == email).First();
                        emailmodel.To      = emailaddress;
                        emailmodel.BCC     = "*****@*****.**";
                        emailmodel.Subject = "Join me at Funfooding";

                        StringBuilder sb = new StringBuilder();
                        sb.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
                        sb.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
                        sb.Append("<head>");
                        sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
                        sb.Append("</head>");
                        sb.Append("<body>");
                        sb.Append("<div style=\"padding:20px; font:normal 14px Arial, Helvetica, sans-serif; color:#333333;\">");
                        sb.Append("Hi " + Recipient.FirstName.ToString() + ",<br />");
                        sb.Append("Connect with " + SenderFirstName + " at Funfooding!<br />");
                        sb.Append("<br />");
                        sb.Append("To Sign In click ");
                        sb.Append("<a href=" + ConfigurationManager.AppSettings["funfoodingUrl"] + "/Account/Login/" + " style=\"color:#0066CC\"> here</a>.<br />");

                        // sb.Append("<a href=" + ConfigurationManager.AppSettings["funfoodingUrl"] + "/Account/SignUp/" + confirmationToken + " style=\"color:#0066CC\"> here</a>.<br />");
                        sb.Append("<br />");
                        sb.Append("If you have any problem completing the process, please contact <a href=\"#\" style=\"color:#0066CC\">[email protected]</a>.<br />");
                        sb.Append("<br /> ");
                        sb.Append("Best regards,<br />");
                        sb.Append("Support Team<br />");
                        sb.Append("<a href=\"http://funfooding.com/\" style=\"color:#0066CC\">www.funfooding.com</a></div>");
                        sb.Append("</body>");
                        sb.Append("</html>");
                        emailmodel.EmailBody = sb.ToString();
                        Common.sendeMail(emailmodel, EmailExist(emailaddress));
                        InsertRequestInfo(userid, emailmodel.From, emailmodel.To, Recipient.UserId);
                    }
                    else
                    {
                        Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
                        Match match = regex.Match(email);
                        if (!match.Success)

                        {
                            TempData["emailAlert"] = "Please enter valid email address";
                            return(RedirectToAction("Invite", "User", new { userid = userid }));
                        }


                        if (IsValidEmail(emailaddress))
                        {
                            //string confirmationToken =
                            //   WebSecurity.CreateUserAndAccount(emailaddress, "Test12345", propertyValues: new
                            //   {
                            //       FirstName = "FirstName"
                            //   }, requireConfirmationToken: true); //new {Email=model.Email}
                            emailmodel.To      = emailaddress;
                            emailmodel.BCC     = "*****@*****.**";
                            emailmodel.Subject = "Join me at Funfooding";


                            StringBuilder sb = new StringBuilder();
                            sb.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
                            sb.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
                            sb.Append("<head>");
                            sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
                            sb.Append("</head>");
                            sb.Append("<body>");
                            sb.Append("<div style=\"padding:20px; font:normal 14px Arial, Helvetica, sans-serif; color:#333333;\">");
                            sb.Append("Hi there,<br />");
                            sb.Append("Join Funfooding to find and share food in and around your neighorhood!<br />");
                            sb.Append("<br />");
                            sb.Append("To sign up click ");
                            sb.Append("<a href=" + ConfigurationManager.AppSettings["funfoodingUrl"] + "/Account/SignUp/" + " style=\"color:#0066CC\"> here</a>.<br />");

                            // sb.Append("<a href=" + ConfigurationManager.AppSettings["funfoodingUrl"] + "/Account/SignUp/" + confirmationToken + " style=\"color:#0066CC\"> here</a>.<br />");
                            sb.Append("<br />");
                            sb.Append("If you have any problem completing the process, please contact <a href=\"#\" style=\"color:#0066CC\">[email protected]</a>.<br />");
                            sb.Append("<br /> ");
                            sb.Append("Best regards,<br />");
                            sb.Append("Support Team<br />");
                            sb.Append("<a href=\"http://funfooding.com/\" style=\"color:#0066CC\">www.funfooding.com</a></div>");
                            sb.Append("</body>");
                            sb.Append("</html>");
                            emailmodel.EmailBody = sb.ToString();

                            Common.sendeMail(emailmodel, EmailExist(emailaddress));
                            InsertRequestInfo(userid, emailmodel.From, emailmodel.To, null);
                        }
                        else
                        {
                            invalidemails = invalidemails + "," + emailaddress;
                        }
                    }
                }

                if (invalidemails == "" && repeatrequests == "")
                {
                    //AccountController acc = new AccountController();
                    //return RedirectPage(userid);
                    return(RedirectToAction("Index", "Contact", new { userID = userid }));
                }
                if (repeatrequests != "")
                {
                    invitedemails.ErrorMessage = "Sorry, you cannot send another request.you have already requested these email address twice. " + repeatrequests;
                }



                if (invalidemails != "")
                {
                    invitedemails.Emailaddresses = invalidemails;


                    invitedemails.ErrorMessage = invitedemails.ErrorMessage + "<br><br>Please correct these emailaddresses" + invalidemails;
                }


                TempData["emailAlert"] = invitedemails.ErrorMessage;
                return(View(invitedemails));
            }
            else
            {
                return(View());
            }
        }