public ActionResult Signup(FormCollection form)
        {
            SetMenuSelection("Signup");

            DBContext db = new DBContext();

            #region Add User

            if (form.Count > 0)
            {
                string name = form["txtName"];
                string first = form["txtFirst"];
                string last = form["txtLast"];
                string company = form["txtCompany"];
                string email = form["txtEmail"];
                string password = form["txtPassword"];
                string confirm = form["txtConfirm"];

                ViewData["Name"] = name;
                ViewData["First"] = first;
                ViewData["Last"] = last;
                ViewData["Company"] = company;
                ViewData["Email"] = email;

                #region Validation

                if (name == string.Empty || first == string.Empty || last == string.Empty || email == string.Empty ||
                    password == string.Empty || confirm == string.Empty || company == string.Empty)
                {
                    ViewData["Status"] = "All fields are required...";
                    return View();
                }

                if (!Regex.IsMatch(email, @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"))
                {
                    ViewData["Status"] = "Come on...email needs to be real otherwise we can't send you your authorization key.";
                    return View();
                }

                if (password != confirm)
                {
                    ViewData["Status"] = "Passwords don't match...";
                    return View();
                }

                //dup name check
                var check = db.Users.SingleOrDefault(i => i.Login == name);
                if (check != null)
                {
                    ViewData["Status"] = "Sorry, that user name is taken.";
                    return View();
                }

                #endregion

                User u = new User();
                u.ID = Guid.NewGuid();
                u.Login = name;
                u.FirstName = first;
                u.LastName = last;
                u.CompanyName = company;
                u.Email = email;
                u.Password = UtilCommand.GetMD5(password);
                u.AuthKey = Guid.NewGuid();
                db.Users.InsertOnSubmit(u);

                UserUserType uut = new UserUserType();
                uut.ID = Guid.NewGuid();
                uut.UserID = u.ID;
                uut.UserTypeID = new Guid("4cbef1c1-c2fa-4ce6-9bc1-6cada43ad0d4"); //developer
                db.UserUserTypes.InsertOnSubmit(uut);

                db.SubmitChanges();

                #region Send Email

                StringBuilder sb = new StringBuilder();
                sb.Append("<h2>Welcome to Metrix!</h2>");
                sb.Append("<p>Thank you for signing up to Metrix. The last step to completing your profile is copying the code below and pasting it into your profile page at http://metrix.webosroundup.com.</p>");
                sb.Append("<p>If you have logged out of metrix, simply log back in and paste in the code.</p>");
                sb.Append("<p><strong>Authorization Key:</strong> ");
                sb.Append(u.AuthKey.ToString());
                sb.Append("</p><p>Thank you again for your interest in Metrix. If you have any questions, please feel free to email us at [email protected] and we will get back to you as soon as possible.");
                sb.Append("<br/><p>-- The webOSroundup and Syntactix teams</p>");

                UtilCommand.SendEmail(email, "Metrix Authorization Key", sb.ToString());

                #endregion

                Session["UserID"] = u.ID;
                Session["UserTypes"] = u.UserUserTypes.ToList();

                return RedirectToAction("Authentication", "Profile");
            }

            #endregion

            return View();
        }
示例#2
0
        public ActionResult Signup(FormCollection form)
        {
            SetMenuSelection("Signup");

            DBContext db = new DBContext();

            #region Add User

            if (form.Count > 0)
            {
                string name     = form["txtName"];
                string first    = form["txtFirst"];
                string last     = form["txtLast"];
                string company  = form["txtCompany"];
                string email    = form["txtEmail"];
                string password = form["txtPassword"];
                string confirm  = form["txtConfirm"];

                ViewData["Name"]    = name;
                ViewData["First"]   = first;
                ViewData["Last"]    = last;
                ViewData["Company"] = company;
                ViewData["Email"]   = email;

                #region Validation

                if (name == string.Empty || first == string.Empty || last == string.Empty || email == string.Empty ||
                    password == string.Empty || confirm == string.Empty || company == string.Empty)
                {
                    ViewData["Status"] = "All fields are required...";
                    return(View());
                }

                if (!Regex.IsMatch(email, @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"))
                {
                    ViewData["Status"] = "Come on...email needs to be real otherwise we can't send you your authorization key.";
                    return(View());
                }

                if (password != confirm)
                {
                    ViewData["Status"] = "Passwords don't match...";
                    return(View());
                }

                //dup name check
                var check = db.Users.SingleOrDefault(i => i.Login == name);
                if (check != null)
                {
                    ViewData["Status"] = "Sorry, that user name is taken.";
                    return(View());
                }

                #endregion

                User u = new User();
                u.ID          = Guid.NewGuid();
                u.Login       = name;
                u.FirstName   = first;
                u.LastName    = last;
                u.CompanyName = company;
                u.Email       = email;
                u.Password    = UtilCommand.GetMD5(password);
                u.AuthKey     = Guid.NewGuid();
                db.Users.InsertOnSubmit(u);

                UserUserType uut = new UserUserType();
                uut.ID         = Guid.NewGuid();
                uut.UserID     = u.ID;
                uut.UserTypeID = new Guid("4cbef1c1-c2fa-4ce6-9bc1-6cada43ad0d4"); //developer
                db.UserUserTypes.InsertOnSubmit(uut);

                db.SubmitChanges();

                #region Send Email

                StringBuilder sb = new StringBuilder();
                sb.Append("<h2>Welcome to Metrix!</h2>");
                sb.Append("<p>Thank you for signing up to Metrix. The last step to completing your profile is copying the code below and pasting it into your profile page at http://metrix.webosroundup.com.</p>");
                sb.Append("<p>If you have logged out of metrix, simply log back in and paste in the code.</p>");
                sb.Append("<p><strong>Authorization Key:</strong> ");
                sb.Append(u.AuthKey.ToString());
                sb.Append("</p><p>Thank you again for your interest in Metrix. If you have any questions, please feel free to email us at [email protected] and we will get back to you as soon as possible.");
                sb.Append("<br/><p>-- The webOSroundup and Syntactix teams</p>");

                UtilCommand.SendEmail(email, "Metrix Authorization Key", sb.ToString());

                #endregion

                Session["UserID"]    = u.ID;
                Session["UserTypes"] = u.UserUserTypes.ToList();

                return(RedirectToAction("Authentication", "Profile"));
            }

            #endregion

            return(View());
        }