コード例 #1
0
ファイル: ListController.cs プロジェクト: tdoyleiv/tutorHut
        public ActionResult Details()
        {
            var             userId = User.Identity.GetUserId();
            ApplicationUser user   = db.Users.Where(d => d.Id == userId).First();

            Hidden hide = new Hidden();

            if (ModelState.IsValid)
            {
                string userEmail = user.Email;
                string linkName  = "REPLY";
                string text      = "\n\n" + userEmail.ToString() + " \n\nwishes to obtain your contact information. Please click on the REPLY link above to accept or deny this request";
                string email     = hide.Email;
                string subject   = "Request Information";
                string link      = "<html><body><a href='http://localhost:65515/Reply\'>" + linkName + "</a></body></html>";


                link += text;

                MailGun.SendSimpleMessage(email, subject, link);

                return(RedirectToAction("Index"));
            }

            return(View());
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: JesseClarkND/tools
        private static void SendEmail(string subject, string body)
        {
            var fromAddress = new MailAddress("*****@*****.**", Settings.ServerName);
            var toAddress   = new MailAddress("*****@*****.**", "To Name");

            MailGun.Blast(subject, body, fromAddress, toAddress, Settings.EmailPassword);
        }
コード例 #3
0
//        public void Timeout(EmailStatusPendingTimeout state)
//        {
//            // TODO : Mailgun Events api with Message-Id as filter
//            var emailStatus = MailGun.CheckStatus(Data.EmailId);
//            var emailStatusUpdate = new EmailStatusUpdate(Data.OriginalMessage, Data.EmailId) { Status = emailStatus };
//            switch (emailStatus)
//            {
//                case EmailStatus.Accepted:
//                    RequestUtcTimeout<EmailStatusPendingTimeout>(new TimeSpan(0,0,2,0));
//                    break;
//                case EmailStatus.Delivered:
//                    if (Data.DeliveredEmailCount == 0)
//                    {
//                        ReplyToOriginator(emailStatusUpdate);
//                        Bus.SendLocal(emailStatusUpdate);
//                        Bus.Publish(new SmsMessages.Email.Events.EmailSent
//                            {
//                                EmailAddress = Data.OriginalMessage.ToAddress,
//                                BodyHtml = Data.OriginalMessage.BodyHtml,
//                                BodyText = Data.OriginalMessage.BodyText,
//                                Subject = Data.OriginalMessage.Subject,
//                                Id = Data.OriginalMessage.CorrelationId,
//                                SendTimeUtc = Data.StartTime.ToUniversalTime()
//
//                            });
//                    }
//                    if (Data.DeliveredEmailCount > 10)
//                        // TODO: Should notify originator that there is no more checking
//                        MarkAsComplete();
//                    else
//                        RequestUtcTimeout<EmailStatusPendingTimeout>(new TimeSpan(0, 2, 0, 0));
//                    Data.DeliveredEmailCount++;
//                    break;
//                case EmailStatus.Failed:
//                case EmailStatus.Clicked:
//                case EmailStatus.Opened:
//                case EmailStatus.Complained:
//                case EmailStatus.Unsubscribed:
//                    ReplyToOriginator(emailStatusUpdate);
//                    Bus.SendLocal(emailStatusUpdate);
//                    MarkAsComplete();
//                    break;
//                default:
//                    throw new NotImplementedException();
//            }
//        }

        public void Handle(SendEmail message)
        {
            using (var session = RavenDocumentStore.GetStore().OpenSession(RavenDocumentStore.ConfigurationDatabaseName()))
            {
                var emailProvider = session.Load <EmailProviderConfiguration>("EmailProviderConfiguration");
                if (emailProvider == null)
                {
                    Data.EmailId = MailGun.SendEmail(message);
                }
                else
                {
                    switch (emailProvider.EmailProvider)
                    {
                    case EmailProvider.Mailgun:
                        Data.EmailId = MailGun.SendEmail(message);
                        break;

                    case EmailProvider.Mandrill:
                        Data.EmailId = MandrillWrapper.SendEmail(message);
                        break;
                    }
                }
                //			Bus.Reply(new InternalMessages.Responses.EmailSent { EmailId = emailId, EmailSagaId = message.EmailSagaId });
            }
        }
コード例 #4
0
        public ActionResult SendFromResidentToBuilding([Bind(Include = "Id,Resident,BuildingName,Unit,Subject,Body")] Messages messages)
        {
            if (ModelState.IsValid)
            {
                db.Messages.Add(messages);
                db.SaveChanges();

                string residentEmail = null;

                var residentEmailQuery = from rm in db.Residents
                                         where (rm.Location == messages.BuildingName)
                                         select rm.EmailAddress;

                foreach (string result in residentEmailQuery)
                {
                    residentEmail = result;
                    MailGun managerMessageToResident = new MailGun();
                    managerMessageToResident.SendFromResidentToBuilding(residentEmail, messages.Subject, messages.Body, messages.BuildingName, messages.Resident, messages.Unit);
                }

                return(RedirectToAction("MessageSuccess"));
            }

            return(View(messages));
        }
コード例 #5
0
        public void SendDataInvalidRecipients()
        {
            var random = new Random();

            byte[] bytes = new byte[23];
            random.NextBytes(bytes);
            MailGun.Send(StringHelper.ValidString(), StringHelper.NullEmptyWhiteSpace(), bytes);
        }
コード例 #6
0
        public JsonResult SendPasswordResetRequest(string FirstName, string LastName, string Email, string CompanyName, string Telephone, string City, string Comments)
        {
            string MessageBody = String.Format("Name: {0} {1}<br/>Email: {2}<br/>Company Name: {3}<br/>Telephone: {4}<br/>City: {5}<br/>Comments: {6}", 
                FirstName, LastName, Email, CompanyName, Telephone, City, Comments);

            MailGun.SendEmailToEmailAddressAsScreeningOne(0, 0, ConfigurationManager.AppSettings["BillingEmail"], "Password Reset Request - " + FirstName + " " + LastName, MessageBody, ConfigurationManager.AppSettings["BillingEmailName"], ConfigurationManager.AppSettings["BillingEmail"], ConfigurationManager.AppSettings["BillingEmailName"]);
            //ScreeningONESendMail.SendMail("*****@*****.**", "Password Reset Request - " + FirstName + " " + LastName, MessageBody, true);
            return new JsonResult { Data = new { success = true } };
        }
コード例 #7
0
ファイル: ReplyController.cs プロジェクト: tdoyleiv/tutorHut
        public ActionResult Deny()
        {
            string email   = hide.Email;
            string subject = "Request Denied";
            string link    = "I'm sorry your request was denied";

            MailGun.SendSimpleMessage(email, subject, link);

            return(View());
        }
コード例 #8
0
ファイル: TutorController.cs プロジェクト: tdoyleiv/tutorHut
        public ActionResult Index(string parentEmail, string message)
        {
            string email   = hide.Email;
            string subject = "Tutor Update";
            string link    = message;


            MailGun.SendSimpleMessage(email, subject, link);

            return(View());
        }
コード例 #9
0
        public async Task <ActionResult> Details(string trackingNumber)
        {
            if (ModelState.IsValid)
            {
                string guestEmail = hide.RetrieveEmail();
                string text2      = trackingNumber;

                MailGun.SendSimpleMessage(guestEmail, text2);

                return(RedirectToAction("Index"));
            }

            return(View());
        }
コード例 #10
0
        public ActionResult Create([Bind(Include = "Id,Name,Location,Unit,TypeOfService,Details,Urgency,DateSubmitted,ContractorUsed,FollowUpNeeded,Completed,DateCompleted")] ServiceRequests serviceRequests)
        {
            if (ModelState.IsValid)
            {
                db.ServiceRequests.Add(serviceRequests);
                db.SaveChanges();

                MailGun managerMessage = new MailGun();
                managerMessage.SendServiceRequest("*****@*****.**", serviceRequests.Name, serviceRequests.Location, serviceRequests.Unit, serviceRequests.TypeOfService, serviceRequests.Details, serviceRequests.Urgency, serviceRequests.DateSubmitted);

                return(RedirectToAction("Success"));
            }

            return(View(serviceRequests));
        }
コード例 #11
0
        public ActionResult Create([Bind(Include = "Id,Name,EmailAddress,Subject,Body")] AvailableUnitInfoRequests availableUnitInfoRequests)
        {
            if (ModelState.IsValid)
            {
                db.AvailableUnitInfoRequests.Add(availableUnitInfoRequests);
                db.SaveChanges();

                MailGun managerMessage = new MailGun();
                managerMessage.SendAvailableUnitRequest(availableUnitInfoRequests.Name, availableUnitInfoRequests.EmailAddress, availableUnitInfoRequests.Subject, availableUnitInfoRequests.Body);

                return(RedirectToAction("MessageSuccess", "Messages"));
            }

            return(View(availableUnitInfoRequests));
        }
コード例 #12
0
        public ActionResult SendToManager([Bind(Include = "Id,Resident,BuildingName,Unit,Subject,Body")] Messages messages)
        {
            if (ModelState.IsValid)
            {
                db.Messages.Add(messages);
                db.SaveChanges();

                MailGun managerMessage = new MailGun();
                managerMessage.SendToSingleEmail("*****@*****.**", messages.Subject, messages.Body, messages.Resident, messages.Unit, messages.BuildingName);

                return(RedirectToAction("MessageSuccess"));
            }

            return(View(messages));
        }
コード例 #13
0
        public Guid Send(BinaryEmail email)
        {
            Contract.Requires <ArgumentNullException>(null != email);

            Contract.Requires <ArgumentOutOfRangeException>(!string.IsNullOrWhiteSpace(email.Sender));
            Contract.Requires <ArgumentOutOfRangeException>(!string.IsNullOrWhiteSpace(email.Recipient));

            Contract.Requires <ArgumentOutOfRangeException>(null != email.RawMessage);

            MailGun.Send(email.Sender, email.Recipient, email.RawMessage);

            var table = new AzureTable <BinaryEmailData>(ServerConfiguration.Default);
            var data  = email.Convert();

            table.AddEntity(data);

            return(data.Id);
        }
コード例 #14
0
ファイル: ReplyController.cs プロジェクト: tdoyleiv/tutorHut
        public ActionResult Accept()
        {
            string email   = hide.Email;
            string subject = "Request Accepted";
            //string linkName = "Click me for GOOGLE";
            //string tutorEmail = profile.ApplicationUser.Email;
            //string tutorFirstName = profile.ProfileFirstName;
            //string tutorLastName = profile.ProfileLastName;
            //string tutorPhoneNumber = profile.ProfilePhoneNumber;
            string tutorEmail       = "*****@*****.**";
            string tutorFirstName   = "New";
            string tutorLastName    = "TutorA";
            string tutorPhoneNumber = "123-456-7890";
            string link             = "I have accepted your request here is my contact information : " + tutorEmail + " " + tutorPhoneNumber + " " + tutorFirstName + " " + tutorLastName;

            MailGun.SendSimpleMessage(email, subject, link);


            return(View());
        }
コード例 #15
0
ファイル: ReplyController.cs プロジェクト: tdoyleiv/tutorHut
        public ActionResult Index(string accept, bool deny)
        {
            if (ModelState.IsValid)
            {
                string acceptButton = "accept";
                string denyButton   = "deny";

                if (acceptButton == "accept")
                {
                    string email   = hide.Email;
                    string subject = "Request Accepted";
                    //string linkName = "Click me for GOOGLE";
                    //string tutorEmail = profile.ApplicationUser.Email;
                    //string tutorFirstName = profile.ProfileFirstName;
                    //string tutorLastName = profile.ProfileLastName;
                    //string tutorPhoneNumber = profile.ProfilePhoneNumber;
                    string tutorEmail       = "*****@*****.**";
                    string tutorFirstName   = "New";
                    string tutorLastName    = "TutorA";
                    string tutorPhoneNumber = "123-456-7890";
                    string link             = "I have accepted your request here is my contact information : " + tutorEmail + " " + tutorPhoneNumber + " " + tutorFirstName + " " + tutorLastName;

                    MailGun.SendSimpleMessage(email, subject, link);
                    return(RedirectToAction("Index"));
                }

                if (deny)
                {
                    string email    = hide.Email;
                    string subject  = "Request Denied";
                    string linkName = "Sorry you have been denied by the tutor.";
                    string link     = "<html><body><a href='http://localhost:65515/List\'>" + linkName + "</a></body></html>";

                    MailGun.SendSimpleMessage(email, subject, link);
                    return(RedirectToAction("Index"));
                }
            }

            return(View());
        }
コード例 #16
0
        /// <summary>
        /// This is where we should do the actual email send to the user.
        /// </summary>
        /// <param name="to">To Email Address</param>
        /// <param name="from">From Email Address</param>
        /// <param name="subject">Title</param>
        /// <param name="body">Body</param>
        private void Send(string to, string from, string fromName, string subject, string body)
        {
            if (string.IsNullOrWhiteSpace(from))
            {
                throw new ArgumentException("from");
            }

            if (!string.IsNullOrWhiteSpace(to))
            {
                var sent = false;
                try
                {
                    var email    = new MailGun();
                    var response = email.Send(from, fromName, to, subject, body);
                    sent = true;
                    //sent = response.StatusCode == System.Net.HttpStatusCode.OK;
                }
                catch
                {
                }

                this.Archive(from, fromName, to, subject, body, sent);
            }
        }
コード例 #17
0
 public void SendTextInvalidRecipients()
 {
     MailGun.Send(StringHelper.ValidString(), StringHelper.NullEmptyWhiteSpace(), string.Empty, string.Empty);
 }
コード例 #18
0
 public void SendData()
 {
     MailGun.Send("*****@*****.**", "*****@*****.**", Guid.NewGuid().ToByteArray());
 }
コード例 #19
0
 public void SendDataEmptyMime()
 {
     byte[] bytes = new byte[0];
     MailGun.Send(StringHelper.ValidString(), StringHelper.NullEmptyWhiteSpace(), bytes);
 }
コード例 #20
0
 public void SendText()
 {
     MailGun.Send("*****@*****.**", "*****@*****.**", "This is a test email message", string.Format("this is a test message{0}; which is suppose to have text in it.", StringHelper.ValidString()));
 }
コード例 #21
0
        public JsonResult BillingMessage(int CntMsgClientID, string CntMsgClientName, int CntMsgClientContactID,
                                         string CntMsgMessageSubject, string CntMsgMessageFromName, string CntMsgMessageBody, string CntMsgMessageToName,
                                         string CntMsgMessageFromEmail, string CntMsgMessageToEmail, string CntMsgMessageCategory, string CntMsgMessageFromPhone)
        {
            BillingMessage_Details viewBillingMessageDetails = new BillingMessage_Details();

            viewBillingMessageDetails.CntMsgClientID         = CntMsgClientID;
            viewBillingMessageDetails.CntMsgClientName       = CntMsgClientName;
            viewBillingMessageDetails.CntMsgClientContactID  = CntMsgClientContactID;
            viewBillingMessageDetails.CntMsgMessageSubject   = CntMsgMessageSubject;
            viewBillingMessageDetails.CntMsgMessageFromName  = CntMsgMessageFromName;
            viewBillingMessageDetails.CntMsgMessageBody      = CntMsgMessageBody;
            viewBillingMessageDetails.CntMsgMessageToName    = CntMsgMessageToName;
            viewBillingMessageDetails.CntMsgMessageFromEmail = CntMsgMessageFromEmail;
            viewBillingMessageDetails.CntMsgMessageToEmail   = CntMsgMessageToEmail;
            viewBillingMessageDetails.CntMsgMessageCategory  = CntMsgMessageCategory;
            viewBillingMessageDetails.CntMsgMessageFromPhone = CntMsgMessageFromPhone;

            ClientContact userresult = ClientContacts.GetClientContactFromClientContactID(CntMsgClientContactID);

            Dictionary <string, string> messagevalues = new Dictionary <string, string>();

            messagevalues.Add("[[COMPANYNAME]]", CntMsgClientName);
            messagevalues.Add("[[USERNAME]]", CntMsgMessageFromName);
            messagevalues.Add("[[USEREMAIL]]", CntMsgMessageFromEmail);
            messagevalues.Add("[[MESSAGECATEGORY]]", CntMsgMessageCategory);
            messagevalues.Add("[[USERPHONE]]", CntMsgMessageFromPhone);
            messagevalues.Add("[[MESSAGEBODY]]", CntMsgMessageBody);
            messagevalues.Add("[[CORPORATENAME]]", System.Configuration.ConfigurationManager.AppSettings["CompanyName"]);

            string subject = "Billing Client Request: " + CntMsgMessageSubject;

            MailGun.SendEmailToEmailAddressFromTemplate(4, 0, "Client Request", 0, ConfigurationManager.AppSettings["supportemail"], subject, "Tech Support", messagevalues);

            return(new JsonResult {
                Data = new { success = true }
            });

            /*var messageRecord = Messages.GetMessageTemplateRecord(0, "Client Request", messagevalues);
             *
             * string messagebody = messageRecord != null ? messageRecord.MessageText : null;
             *
             * if (messagebody != null)
             * {
             *  int messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault();
             *  int? MessageIDOutput = new int?();
             *  Guid? MessageActionGuidOutput = new Guid?();
             *  subject = "Billing Client Request: " + CntMsgMessageSubject;
             *  Messages.CreateMessageWithAction(messageActionType, subject, messagebody, 2, 1, 0, 3, "", System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput);
             *  Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody);
             *  return new JsonResult { Data = new { success = true } };
             * }
             * else
             * {
             *  ModelState.AddModelError("ErrorMessages", "The message body was empty and could not be delivered. Please enter some information in the Message body and try again.");
             *  return new JsonResult
             *  {
             *      Data = new
             *      {
             *          success = false,
             *          view = RenderToString.RenderViewToString(this, "BillingMessage", viewBillingMessageDetails)
             *      }
             *  };
             * }*/
        }
コード例 #22
0
 public void SendDataNullMime()
 {
     MailGun.Send(StringHelper.ValidString(), StringHelper.ValidString(), null);
 }
コード例 #23
0
 public void SendTextNullText()
 {
     MailGun.Send(StringHelper.ValidString(), StringHelper.ValidString(), string.Empty, null);
 }
コード例 #24
0
 public void SendTextNullSubject()
 {
     MailGun.Send(StringHelper.ValidString(), StringHelper.ValidString(), null, string.Empty);
 }
コード例 #25
0
        public JsonResult ResetUserPasswordJSON(string OldUserName, int UserID, string UserNameEmail, bool Inactive)
        {
            //Check to see if the old and new names are the same
            if (OldUserName != UserNameEmail)
            {
                return(new JsonResult {
                    Data = new { success = false, error = "You must first save the changed username before sending email." }
                });
            }

            if (Inactive)
            {
                return(new JsonResult {
                    Data = new { success = false, error = "Please activate the user and save the change before attempting to reset the password." }
                });
            }

            Regex emailregex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,7}$");

            Match m = emailregex.Match(UserNameEmail);

            if (m.Success == false)
            {
                return(new JsonResult {
                    Data = new { success = false, error = "Invalid Email Format." }
                });
            }


            if (ViewData.ModelState.IsValid)
            {
                var db3     = new UsersDataContext();
                var result3 = db3.S1_Users_GetClientContactForEmail(UserID).SingleOrDefault();

                string ReturnURL       = "/Security/ChangePassword";
                string contactpassword = result3.ContactLastName.Substring(0, 3) + result3.ContactZipCode.Substring(0, 3) + result3.ContactState;

                MembershipUser mu = Provider.GetUser(result3.UserName, false);
                Provider.ChangePasswordQuestionAndAnswer(result3.UserName, contactpassword, "What is your Company's zipcode?", result3.ContactZipCode);
                Provider.UpdateUser(mu);


                string oldpassword = mu.ResetPassword();
                Provider.ChangePassword(result3.UserName, oldpassword, contactpassword);
                Provider.UpdateUser(mu);

                string subject = ConfigurationManager.AppSettings["CompanyName"] + " Billing: Account for " + result3.ContactFirstName + " " + result3.ContactLastName + " - " + result3.ClientName;


                var db1 = new UsersDataContext();
                //The following line is creating a message with a null status on purpose. Due to the actionGUID being used in the emails following. Note also this is S1_Users instead of S1_Messages
                var results1 = db1.S1_Users_CreateMessageWithAction(1, subject, result3.UserID, 1, 0, 3, HttpUtility.UrlDecode(ReturnURL), System.DateTime.Now, null).SingleOrDefault();

                if (results1.ActionGUID != null)
                {
                    Dictionary <string, string> messagevalues = new Dictionary <string, string>();
                    messagevalues.Add("[[USER_EMAIL]]", result3.Email);
                    messagevalues.Add("[[USERNAME]]", result3.UserName);
                    messagevalues.Add("[[COMPANYNAME]]", result3.ClientName);
                    messagevalues.Add("[[PASSWORD]]", contactpassword);
                    messagevalues.Add("[[GUIDURL]]", System.Configuration.ConfigurationManager.AppSettings["DefaultPath"] + "/Account/ConfirmEmail/" + results1.ActionGUID.ToString() + "?portal=client");
                    messagevalues.Add("[[CORPORATENAME]]", System.Configuration.ConfigurationManager.AppSettings["CompanyName"]);

                    MailGun.SendEmailToUserFromTemplate(10, 0, "Create Client Account", 0, result3.UserID, 0, subject, messagevalues);

                    subject = ConfigurationManager.AppSettings["CompanyName"] + " Billing: " + result3.ContactFirstName + " " + result3.ContactLastName + " - " + result3.ClientName;

                    MailGun.SendEmailToUserFromTemplate(11, 0, "Create Client Password", 0, result3.UserID, 0, subject, messagevalues);

                    return(new JsonResult {
                        Data = new { success = true, error = "Password has been resent and emailed to the user." }
                    });

                    /* var messageRecord = Messages.GetMessageTemplateRecord(0, "Create Client Account", messagevalues);
                     *
                     * string messagebody = messageRecord != null ? messageRecord.MessageText : null;
                     *
                     * if (messagebody != null)
                     * {
                     *   int messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault();
                     *   int? MessageIDOutput = new int?();
                     *   Guid? MessageActionGuidOutput = new Guid?();
                     *
                     *   //Send email with UserName
                     *   Messages.CreateMessageWithAction(messageActionType, subject, messagebody, result3.UserID, 1, 0, 3, HttpUtility.UrlDecode(ReturnURL), System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput);
                     *   Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody);
                     *
                     *   subject = ConfigurationManager.AppSettings["CompanyName"] + " Billing: " + result3.ContactFirstName + " " + result3.ContactLastName + " - " + result3.ClientName;
                     *
                     *   messageRecord = Messages.GetMessageTemplateRecord(0, "Create Client Password", messagevalues);
                     *
                     *   messagebody = messageRecord != null ? messageRecord.MessageText : null;
                     *
                     *   if (messagebody != null)
                     *   {
                     *       messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault();
                     *       MessageIDOutput = new int?();
                     *       MessageActionGuidOutput = new Guid?();
                     *
                     *       //Send email with Password
                     *       Messages.CreateMessageWithAction(messageActionType, subject, messagebody, result3.UserID, 1, 0, 3, HttpUtility.UrlDecode(ReturnURL), System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput);
                     *       Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody);
                     *   }
                     *
                     *   return new JsonResult { Data = new { success = true, error = "Password has been resent and emailed to the user." } };
                     *
                     * }
                     * else
                     * {
                     *   return new JsonResult { Data = new { success = false, error = "Unable to reset the password at this time. Please retry." } };
                     *
                     * }*/
                }
                else
                {
                    return(new JsonResult {
                        Data = new { success = false, error = "Unable to reset the password at this time. Please retry." }
                    });
                }
            }
            return(new JsonResult {
                Data = new { success = false, error = "Unable to reset the password at this time. Please retry." }
            });
        }
コード例 #26
0
        public JsonResult CreateClientUserPost(Security_Users viewSecuritySetup, FormCollection fc)
        {
            int    newuserclientid = Convert.ToInt32(fc["primarycompany"]);
            string newuserrole     = fc["usertypelist"];

            // Basic parameter validation
            if (String.IsNullOrEmpty(viewSecuritySetup.firstname))
            {
                ViewData.ModelState.AddModelError("firstname", " ");
                ViewData.ModelState.AddModelError("*", "Please enter a firstname.");
            }

            if (String.IsNullOrEmpty(viewSecuritySetup.lastname))
            {
                ViewData.ModelState.AddModelError("lastname", " ");
                ViewData.ModelState.AddModelError("*", "Please enter a lastname.");
            }

            if (String.IsNullOrEmpty(viewSecuritySetup.username))
            {
                ViewData.ModelState.AddModelError("username", " ");
                ViewData.ModelState.AddModelError("*", "Please enter a username.");
            }

            if (String.IsNullOrEmpty(viewSecuritySetup.email))
            {
                ViewData.ModelState.AddModelError("email", " ");
                ViewData.ModelState.AddModelError("*", "Please enter an email address.");
            }
            else
            {
                Regex emailregex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,7}$");

                Match m = emailregex.Match(viewSecuritySetup.email);
                if (m.Success == false)
                {
                    ViewData.ModelState.AddModelError("email", " ");
                    ViewData.ModelState.AddModelError("*", "Invalid email format.");
                }
            }

            if (viewSecuritySetup.password == null || viewSecuritySetup.password.Length < Provider.MinRequiredPasswordLength)
            {
                ViewData.ModelState.AddModelError("password", " ");
                ViewData.ModelState.AddModelError("*", String.Format(CultureInfo.InvariantCulture,
                                                                     "A password of {0} or more characters is required.",
                                                                     Provider.MinRequiredPasswordLength));
            }

            if (!String.Equals(viewSecuritySetup.password, viewSecuritySetup.confirmPassword, StringComparison.Ordinal))
            {
                ViewData.ModelState.AddModelError("confirmPassword", " ");
                ViewData.ModelState.AddModelError("*", "The password and confirmation do not match.");
            }

            if (ViewData.ModelState.IsValid)
            {
                string subject       = ConfigurationManager.AppSettings["CompanyName"] + " Billing: New Account";
                string clientname    = null;
                string clientaddr1   = null;
                string clientaddr2   = null;
                string clientcity    = null;
                string clientstate   = null;
                string clientzipcode = null;

                // Attempt to register the user
                MembershipCreateStatus createStatus;
                MembershipUser         newUser = Provider.CreateUser(viewSecuritySetup.username, viewSecuritySetup.password, viewSecuritySetup.email,
                                                                     "client", "client", true, null, out createStatus);

                if (newUser != null)
                {
                    var db     = new UsersDataContext();
                    var result = db.S1_Users_CreateUser(viewSecuritySetup.username, newuserclientid, 1, viewSecuritySetup.firstname, viewSecuritySetup.lastname).SingleOrDefault();
                    if (result.UserID > 0)
                    {
                        Roles.AddUserToRole(viewSecuritySetup.username, newuserrole);

                        if (String.IsNullOrEmpty(HttpUtility.UrlDecode(viewSecuritySetup.ReturnUrl)))
                        {
                            viewSecuritySetup.ReturnUrl = "/Account/Logon?portal=admin";
                        }

                        var db1 = new UsersDataContext();
                        //The following line is creating a message with a null status on purpose. Due to the actionGUID being used in the emails following. Note also this is S1_Users instead of S1_Messages
                        var results1 = db.S1_Users_CreateMessageWithAction(1, subject, result.UserID, 1, 0, 3, HttpUtility.UrlDecode(viewSecuritySetup.ReturnUrl), System.DateTime.Now, null).SingleOrDefault();

                        if (results1.ActionGUID != null)
                        {
                            string ReturnURL = "/Account/ConfirmEmail";

                            var db3     = new ClientsDataContext();
                            var result3 = db3.S1_Clients_GetClientsFromUser(result.UserID).SingleOrDefault();

                            if (result3 == null)
                            {
                                //todo;
                            }
                            else
                            {
                                clientname    = result3.ClientName;
                                clientaddr1   = result3.Address1;
                                clientaddr2   = result3.Address2;
                                clientcity    = result3.City;
                                clientstate   = result3.State;
                                clientzipcode = result3.ZipCode;
                            }

                            Provider.ChangePasswordQuestionAndAnswer(viewSecuritySetup.username, viewSecuritySetup.password, "What is your Company's zipcode?", clientzipcode);

                            Dictionary <string, string> messagevalues = new Dictionary <string, string>();
                            messagevalues.Add("[[USER_FIRSTNAME]]", "");
                            messagevalues.Add("[[USER_MI]]", "");
                            messagevalues.Add("[[USER_LASTNAME]]", "");
                            messagevalues.Add("[[USER_TITLE]]", "");
                            messagevalues.Add("[[COMPANY_ADDRESS_LINE1]]", clientaddr1);
                            messagevalues.Add("[[COMPANY_ADDRESS_LINE2]]", clientaddr2);
                            messagevalues.Add("[[COMPANY_ADDRESS_CITY]]", clientcity);
                            messagevalues.Add("[[COMPANY_ADDRESS_STATE]]", clientstate);
                            messagevalues.Add("[[COMPANY_ADDRESS_ZIPCODE]]", clientzipcode);
                            messagevalues.Add("[[USER_EMAIL]]", viewSecuritySetup.email);
                            messagevalues.Add("[[USER_PHONE]]", "");
                            messagevalues.Add("[[USERNAME]]", viewSecuritySetup.username);
                            messagevalues.Add("[[COMPANYNAME]]", clientname);
                            messagevalues.Add("[[GUIDURL]]", System.Configuration.ConfigurationManager.AppSettings["DefaultPath"] + ReturnURL + "/" + results1.ActionGUID.ToString() + "?portal=client");
                            messagevalues.Add("[[CORPORATENAME]]", System.Configuration.ConfigurationManager.AppSettings["CompanyName"]);

                            MailGun.SendEmailToUserFromTemplate(10, 0, "Create Client Account", 0, result.UserID.Value, 0, subject, messagevalues);

                            return(new JsonResult {
                                Data = new { success = true }
                            });

                            /*var messageRecord = Messages.GetMessageTemplateRecord(0, "Create Client Account", messagevalues);
                             *
                             * string messagebody = messageRecord != null ? messageRecord.MessageText : null;
                             *
                             * if (messagebody != null)
                             * {
                             *  int messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault();
                             *  int? MessageIDOutput = new int?();
                             *  Guid? MessageActionGuidOutput = new Guid?();
                             *
                             *  Messages.CreateMessageWithAction(messageActionType, subject, messagebody, result.UserID, 1, 0, 3, HttpUtility.UrlDecode(ReturnURL), System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput);
                             *  Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody);
                             *
                             *  return new JsonResult { Data = new { success = true } };
                             * }
                             * else
                             * {
                             *  ModelState.AddModelError("*", "There was a problem sending the confirmation email.  Please re-create a new account.  We apologize for the inconvenience.");
                             *  HandleCreateClientUserErrors(viewSecuritySetup, fc);
                             *  return new JsonResult
                             *  {
                             *      Data = new
                             *      {
                             *          success = false,
                             *          view = RenderToString.RenderViewToString(this, "CreateClientUser", viewSecuritySetup)
                             *      }
                             *  };
                             * }*/
                        }

                        ModelState.AddModelError("*", "There was a problem sending the confirmation email.  Please re-create a new account.  We apologize for the inconvenience.");
                        HandleCreateClientUserErrors(viewSecuritySetup, fc);
                        return(new JsonResult
                        {
                            Data = new
                            {
                                success = false,
                                view = RenderToString.RenderViewToString(this, "CreateClientUser", viewSecuritySetup)
                            }
                        });
                    }
                    else
                    {
                        ModelState.AddModelError("*", ErrorHandler.ErrorCodeToString(createStatus));
                        HandleCreateClientUserErrors(viewSecuritySetup, fc);
                        return(new JsonResult
                        {
                            Data = new
                            {
                                success = false,
                                view = RenderToString.RenderViewToString(this, "CreateClientUser", viewSecuritySetup)
                            }
                        });
                    }
                }
                else
                {
                    ViewData.ModelState.AddModelError("*", ErrorHandler.ErrorCodeToString(createStatus));
                    HandleCreateClientUserErrors(viewSecuritySetup, fc);
                    return(new JsonResult
                    {
                        Data = new
                        {
                            success = false,
                            view = RenderToString.RenderViewToString(this, "CreateClientUser", viewSecuritySetup)
                        }
                    });
                }
            }
            return(new JsonResult
            {
                Data = new
                {
                    success = false,
                    view = RenderToString.RenderViewToString(this, "CreateClientUser", viewSecuritySetup)
                }
            });
            //return new JsonResult { Data = new { success = true } };
        }
コード例 #27
0
        public ActionResult ChangePass(string id, string newPassword, string confirmPassword)
        {


            Account_ChangePass viewChangePass = new Account_ChangePass();
            viewChangePass.ShowFieldSet = true;

            if (String.IsNullOrEmpty(id))
            {
                ViewData.ModelState.AddModelError("*", "There was an error processing this request.  Please refresh your browser and try again. If the problem persists, please go to the Forgot Password page and request another password reset.");
                viewChangePass.ShowFieldSet = false;
            }

            if (newPassword == null || newPassword.Length < Provider.MinRequiredPasswordLength)
            {
                ViewData.ModelState.AddModelError("newPassword", String.Format(CultureInfo.InvariantCulture,
                         "You must specify a new password of {0} or more characters.",
                         Provider.MinRequiredPasswordLength));
               
            }
            if (!String.Equals(newPassword, confirmPassword, StringComparison.Ordinal))
            {
                ViewData.ModelState.AddModelError("newPassword", "The new password and confirmation password do not match.");
               
            }

            if (ViewData.ModelState.IsValid)
            {

                
                var db = new UsersDataContext();
                var result = db.S1_Users_ForgotPassword_GetUserName(id).SingleOrDefault();

                if (result != null)
                {
                    // Attempt to change password
                    MembershipUser currentUser = Provider.GetUser(result.ForgotPasswordUserName, false);
                    bool changeSuccessful = false;
                    try
                    {
                        changeSuccessful =  currentUser.ChangePassword(currentUser.ResetPassword(result.ForgotPasswordAnswer), newPassword);
                    }
                    catch
                    {
                        // An exception is thrown if the new password does not meet the provider's requirements
                    }

                    if (changeSuccessful)
                    {
                           var db1 = new UsersDataContext();
                           var result1 = db1.S1_Users_ForgotPassword_RemoveGUID(id);

                           if (result1 != 0)
                           {
                               //log the error and notify admins
                           }
                           
                        string em = currentUser.Email;
                        string subject = ConfigurationManager.AppSettings["CompanyName"] + " Billing: Change Password Request";
                        int sUserID = 0;
                        string clientname = null;
                        string clientstate = null;
                        string clientzipcode = null;

                       var db2 = new UsersDataContext();
                       var q2 = from o in db.Users
                               where o.aspnet_User.UserName == result.ForgotPasswordUserName
                               select new
                               {
                                   sUID = o.UserID
                               };

                       if (q2.Count() > 0)
                       {

                            sUserID = q2.SingleOrDefault().sUID;

                            var db3 = new UsersDataContext();
                            var result3 = db3.S1_Users_GetClientContactForEmail(sUserID).SingleOrDefault();

                            if (result3 == null)
                            {

                                //todo;
                            }
                            else
                            {
                                clientname = result3.ClientName;
                                clientstate = result3.ContactState;
                                clientzipcode = result3.ContactZipCode;
                            }

                        }

                        Dictionary<string, string> messagevalues = new Dictionary<string, string>();
                        messagevalues.Add("[[COMPANYNAME]]", clientname);
                        messagevalues.Add("[[USERNAME]]", result.ForgotPasswordUserName);
                        messagevalues.Add("[[CORPORATENAME]]", System.Configuration.ConfigurationManager.AppSettings["CompanyName"]);

                        MailGun.SendEmailToUserFromTemplate(12, 0, "Change Password", 0, sUserID, 0, subject, messagevalues);

                        viewChangePass.sUserName = result.ForgotPasswordUserName;
                        return RedirectToAction("ChangePasswordSuccess", "Account", new { portal = ViewData["portal"], ClientID = ViewData["ClientID"] });

                        /* var messageRecord = Messages.GetMessageTemplateRecord(0, "Change Password", messagevalues);

                          string messagebody = messageRecord != null ? messageRecord.MessageText : null;

                          if (messagebody != null)
                          {
                              int messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault();
                              int? MessageIDOutput = new int?();
                              Guid? MessageActionGuidOutput = new Guid?();
                              Messages.CreateMessageWithAction(messageActionType, subject, messagebody, sUserID, 1, 0, 3, "", System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput);
                              Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody);
                              viewChangePass.sUserName = result.ForgotPasswordUserName;
                              return RedirectToAction("ChangePasswordSuccess", "Account", new { portal = ViewData["portal"], ClientID = ViewData["ClientID"] });
                          }
                          else
                          {
                              //todoo: future error logging
                          }*/
                    }
                }
                else
                {
                    ViewData.ModelState.AddModelError("*", "There was an error while trying to reset your password. Please refresh your browser and try again.");
                    
                }
            }

            // If we got this far, something failed, redisplay form
            ViewData["Title"] = "Change Password";

            return View("ConfirmedChangePass", "~/Views/Shared/Site.Master", viewChangePass);

        }