Exemple #1
0
        public IActionResult SendContact()
        {
            try
            {
                string Subject = HttpContext.Request.Form["Subject"];
                string Message = HttpContext.Request.Form["Message"];
                string Name    = HttpContext.Request.Form["Name"];
                string Email   = HttpContext.Request.Form["Email"];

                string[] ValidationInputs = { Message, Name, Email };
                if (!functions.ValidateInputs(ValidationInputs))
                {
                    TempData["ErrorMessage"] = "Validation error. Missing required field(s).";

                    return(RedirectToAction("Index", "Contact"));
                }

                //send email
                string   ToName            = _systemConfiguration.emailCompany;
                string[] MessageParagraphs = { "Contact message from " + Name + "<br/>", Message };
                string   PreHeader         = "New contact message";
                bool     Button            = false;
                int      ButtonPosition    = 0;
                string   ButtonLink        = null;
                string   ButtonLinkText    = null;
                string   Closure           = _systemConfiguration.emailClosure;
                string   Company           = _systemConfiguration.emailCompany;
                string   UnsubscribeLink   = null;
                string   MessageBody       = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink);

                string FromEmail = _systemConfiguration.smtpEmail;
                string ToEmail   = functions.GetSiteLookupData("SupportEmail");
                if (string.IsNullOrEmpty(Subject))
                {
                    Subject = "New Contact Message";
                }
                EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, _systemConfiguration.smtpEmail, _systemConfiguration.smtpPass, _systemConfiguration.emailDisplayName, _systemConfiguration.smtpHost, _systemConfiguration.smtpPort);

                TempData["SuccessMessage"] = $"Thank you for getting in touch! We appreciate you contacting {_systemConfiguration.emailCompany}. <br/> One of our colleagues will get back in touch with you soon! <br/><br/> Have a great day!";
                return(RedirectToAction("Index", "Contact"));
            }
            catch (Exception ex)
            {
                //Log Error
                _logger.LogInformation("Send Contact Message Error: " + ex.ToString());
                TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email to the administrator.";
                return(RedirectToAction("Index", "Contact"));
            }
        }
Exemple #2
0
        public IActionResult ResetPossword()
        {
            string ForgotEmail = HttpContext.Request.Form["ForgotPasswordEmail"];

            string[] ValidationInputs = { ForgotEmail };
            if (!functions.ValidateInputs(ValidationInputs))
            {
                TempData["ErrorMessage"] = "Validation error. Email required.";

                return(RedirectToAction("Index", "SignIn"));
            }

            if (!_context.Accounts.Any(s => s.Email == ForgotEmail))
            {
                TempData["ErrorMessage"] = "The email provided does not exist in our records.";

                return(RedirectToAction("Index", "SignIn"));
            }

            string AccountID = _context.Accounts.Where(s => s.Email == ForgotEmail).FirstOrDefault().AccountID;

            try
            {
                //remove other user reset data if exists
                functions.DeleteTableData("PasswordForgot", "AccountID", AccountID, _systemConfiguration.connectionString);

                //add reset data
                string ResetID = functions.RandomString(120);
                functions.AddForgotPassword(ResetID, AccountID);

                //send user email
                //set email data
                string   ToName            = functions.GetAccountData(AccountID, "FullName");
                string[] MessageParagraphs = { "Hello, ", "We've received a request to reset the password for your account. No changes have been made to your account yet. You can reset your password by clicking the link below: ", "If you did not request a new password, please let us know immediately by replying to this email." };
                string   PreHeader         = "Account password reset link notification.";
                bool     Button            = true;
                int      ButtonPosition    = 2;
                string   ButtonLink        = functions.GetSiteLookupData("AppDomain") + "/PasswordReset/?id=" + ResetID;
                string   ButtonLinkText    = "Reset Password";
                string   Closure           = _systemConfiguration.emailClosure;
                string   Company           = _systemConfiguration.emailCompany;
                string   UnsubscribeLink   = _systemConfiguration.emailUnsubscribeLink;
                string   MessageBody       = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink);

                string FromEmail = _systemConfiguration.smtpEmail;
                string ToEmail   = ForgotEmail;
                string Subject   = "Password Reset Email";

                //Get smtp details
                string smtpEmail   = _systemConfiguration.smtpEmail;
                string smtpPass    = _systemConfiguration.smtpPass;
                string displayName = _systemConfiguration.emailDisplayName;
                string smtpHost    = _systemConfiguration.smtpHost;
                int    smtpPort    = _systemConfiguration.smtpPort;

                EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort);


                TempData["SuccessMessage"] = @"The email with further instructions was sent to the submitted email address. If you don’t receive a message in 5 minutes, " +
                                             "check the junk folder. If you are still experiencing any problems, contact support at " + functions.GetSiteLookupData("SupportEmail");

                //log activity
                if (_systemConfiguration.logActivity)
                {
                    string LogAction = $@"User '{ToName}' did password reset.";
                    functions.LogActivity(ToEmail, ToEmail, "PasswordReset", LogAction);
                }

                return(RedirectToAction("Index", "SignIn"));
            }
            catch (Exception ex)
            {
                //Log Error
                _logger.LogInformation("Password Reset Error: " + ex.ToString());
                TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email to the administrator.";
                return(RedirectToAction("Index", "SignIn"));
            }
        }
Exemple #3
0
        public IActionResult SubscribeUser()
        {
            string SubscriberEmail = HttpContext.Request.Form["SubscriberEmail"];

            if (!string.IsNullOrEmpty(SubscriberEmail))
            {
                try
                {
                    if (_context.Subscribers.Any(s => s.SubscriberEmail == SubscriberEmail))
                    {
                        string Link = functions.GetSiteLookupData("AppDomain") + "/Subscriber/";
                        TempData["SuccessMessage"] = $@"Thank you for confirming your subscription. <br/> You can manage your subscriptions preferences <a href=" + Link + " target='_blank'>here</a>";
                        return(RedirectToAction("Index", "Home"));
                    }

                    //add subscriber
                    functions.AddSubscriber(SubscriberEmail);

                    //set email data
                    string SubscriberID        = _context.Subscribers.Where(s => s.SubscriberEmail == SubscriberEmail).FirstOrDefault().SubscriberID;
                    string UnsubscribeLinkData = _systemConfiguration.emailUnsubscribeLink.Replace("#Subscriber#", SubscriberID);
                    UnsubscribeLinkData = _systemConfiguration.emailUnsubscribeLink.Replace("#Email#", SubscriberEmail);

                    //email subscriber
                    string   ToName            = SubscriberEmail.Split("@")[0];
                    string[] MessageParagraphs = { "Hi there",
                                                   "First off, I’d like to extend a warm welcome and ‘thank you’ for subscribing to the " + functions.GetSiteLookupData("SiteName") + " newsletter.",
                                                   "The " + functions.GetSiteLookupData("SiteName") + " news blog endeavors to send you only the best content.",
                                                   "To get you started on the right path, included in this email is a link to setup your subscription notifications to better suit your interest.",
                                                   "In the mean time, we would be sending you only the most news information.",
                                                   "If you have any questions or comments about the content you’re receiving please email us at " + functions.GetSiteLookupData("SupportEmail") + " and we will respond to your inquiry promptly.",
                                                   // "You can unsubscribe to the newsletter by clicking this <a href="+UnsubscribeLink+">link</a>"
                    };

                    string PreHeader       = "New subscription notification.";
                    bool   Button          = true;
                    int    ButtonPosition  = 6;
                    string ButtonLink      = functions.GetSiteLookupData("AppDomain") + "/Subscriber/?ID=" + SubscriberID;
                    string ButtonLinkText  = "Setting up email automation";
                    string Closure         = _systemConfiguration.emailClosure;
                    string Company         = _systemConfiguration.emailCompany;
                    string UnsubscribeLink = UnsubscribeLinkData;
                    string MessageBody     = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink);

                    string FromEmail = _systemConfiguration.smtpEmail;
                    string ToEmail   = SubscriberEmail;
                    string Subject   = "New Subscriber Email";

                    //Get smtp details
                    string smtpEmail   = _systemConfiguration.smtpEmail;
                    string smtpPass    = _systemConfiguration.smtpPass;
                    string displayName = _systemConfiguration.emailDisplayName;
                    string smtpHost    = _systemConfiguration.smtpHost;
                    int    smtpPort    = _systemConfiguration.smtpPort;

                    EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort);
                    TempData["SuccessMessage"] = @"Thank You For Subscribing! An email notification has been sent to " + SubscriberEmail + " with futher details on setting up your preferences.";
                }
                catch (Exception ex)
                {
                    //Log Error
                    _logger.LogInformation("Subscription Error: " + ex.ToString());
                    TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email.";
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Exemple #4
0
        public async Task <IActionResult> Index(AccountsModel accountsModel)
        {
            // Set Meta Data
            ViewData["Title"]              = "Sign Up";
            ViewData["ContentKeywords"]    = functions.GetSiteLookupData("MetaKeywords");
            ViewData["ContentDescription"] = functions.GetSiteLookupData("MetaDescription");
            ViewData["PostAuthor"]         = "";

            if (ModelState.IsValid)
            {
                //verify password match
                string ConfirmPassword = Request.Form["ConfirmPassword"];
                if (!functions.PasswordsMatch(accountsModel.Password, ConfirmPassword))
                {
                    TempData["ErrorMessage"] = "Passwords do not match";
                    return(View(accountsModel));
                }

                //verify email does not exist
                if (_context.Accounts.Any(s => s.Email == accountsModel.Email))
                {
                    TempData["ErrorMessage"] = "Email already exists, please choose a different email";
                    return(View(accountsModel));
                }

                try
                {
                    //set registration default values
                    accountsModel.AccountID         = functions.GetGuid();
                    accountsModel.DirectoryName     = functions.GenerateDirectoryName(accountsModel.Email);
                    accountsModel.Active            = 0;
                    accountsModel.Oauth             = 0;
                    accountsModel.EmailVerification = 0;
                    accountsModel.UpdatedBy         = accountsModel.AccountID;
                    accountsModel.UpdateDate        = DateTime.Now;
                    accountsModel.DateAdded         = DateTime.Now;

                    //hashing password with BCrypt
                    accountsModel.Password = BCrypt.Net.BCrypt.HashPassword(accountsModel.Password);

                    _context.Add(accountsModel);
                    await _context.SaveChangesAsync();

                    //add account id to account details
                    if (!_context.AccountDetails.Any(s => s.AccountID == accountsModel.AccountID))
                    {
                        functions.AddTableData("AccountDetails", "AccountID", accountsModel.AccountID, _systemConfiguration.connectionString);
                    }

                    //send user email
                    //set email data
                    string   ToName            = functions.GetAccountData(accountsModel.AccountID, "FullName");
                    string[] MessageParagraphs = { "Hello " + ToName + ", ", "Thank you for registering to " + functions.GetSiteLookupData("SiteName") + ".", "Your registration would be reviewed by our team and you would be notified once approved.", "This may take up to 24 hours." };
                    string   PreHeader         = "New account registration notification.";
                    bool     Button            = false;
                    int      ButtonPosition    = 2;
                    string   ButtonLink        = null;
                    string   ButtonLinkText    = null;
                    string   Closure           = _systemConfiguration.emailClosure;
                    string   Company           = _systemConfiguration.emailCompany;
                    string   UnsubscribeLink   = _systemConfiguration.emailUnsubscribeLink;
                    string   MessageBody       = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink);

                    string FromEmail = _systemConfiguration.smtpEmail;
                    string ToEmail   = accountsModel.Email;
                    string Subject   = "Account Registration Email";

                    //Get smtp details
                    string smtpEmail   = _systemConfiguration.smtpEmail;
                    string smtpPass    = _systemConfiguration.smtpPass;
                    string displayName = _systemConfiguration.emailDisplayName;
                    string smtpHost    = _systemConfiguration.smtpHost;
                    int    smtpPort    = _systemConfiguration.smtpPort;

                    EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort);

                    //log activity
                    if (_systemConfiguration.logActivity)
                    {
                        string LogAction = $@"User '{ToName}' registered.";
                        functions.LogActivity(accountsModel.AccountID, accountsModel.AccountID, "NewRegistration", LogAction);
                    }


                    TempData["SuccessMessage"] = "Thank you for registering. Your registration would be reviewed by our team and you would be notified once approved. This may take up to 24 hours.";
                    return(RedirectToAction("Index", "SignIn"));
                }
                catch (Exception ex)
                {
                    //Log Error
                    _logger.LogInformation("Sign Up Error: " + ex.ToString());
                    TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email.";
                }
            }
            return(View(accountsModel));
        }