コード例 #1
0
        /// <summary>
        /// Registers the specified user.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="password">The password.</param>
        /// <returns></returns>
        public Status <User> RegisterUser(User user, string password)
        {
            user.CreateDateUtc = DateTime.UtcNow;
            user.UpdateDateUtc = DateTime.UtcNow;
            user.UpdatedBy     = "AccountAdapter";

            // validate the object
            var result = Status.Validatate <User>(user);

            if (result.StatusCode != 200)
            {
                return(result);
            }

            if (string.IsNullOrWhiteSpace(password))
            {
                return(Status.ValidationError <User>(null, "Password", "The password was not specified"));
            }

            using (var context = new RentlerContext())
            {
                try
                {
                    // check for dup email
                    var dupEmail = context.Users.Where(u => !u.IsDeleted && u.Email.ToLower() == user.Email.ToLower()).Count();
                    if (dupEmail > 0)
                    {
                        return(Status.ValidationError <User>(null, "Email", "The email is already used"));
                    }

                    // check for dup username
                    var dupUser = context.Users.Where(u => !u.IsDeleted && u.Username.ToLower() == user.Username.ToLower()).Count();
                    if (dupUser > 0)
                    {
                        return(Status.ValidationError <User>(null, "Username", "The username is already used"));
                    }

                    user.PasswordHash = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");

                    // create the user
                    context.Users.Add(user);
                    context.SaveChanges();

                    // notify user by email that their password was changed successfully.
                    EmailAccountRegisterModel model = new EmailAccountRegisterModel()
                    {
                        Name = string.Format("{0} {1}", user.FirstName, user.LastName),
                        To   = user.Email
                    };
                    mailer.Register(model);

                    return(Status <User> .OK(user));
                }
                catch (Exception ex)
                {
                    // TODO: log exception
                    return(Status.Error <User>("System was unable to create user", null));
                }
            }
        }
コード例 #2
0
        public ActionResult Register(EmailAccountRegisterModel model)
        {
            var status = mailer.Register(model);

            return(Json(status, JsonRequestBehavior.AllowGet));
        }