public DataResultUserCreateResult CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, string activateFormVirtualPath)
        {
            DataResultUserCreateResult result;
            EmailAttribute emailDataAnnotations = new EmailAttribute();
            if (!emailDataAnnotations.IsValid(email))
            {
                //result = new DataResultUserCreateResult(new CreatedAccountResultModel(MembershipCreateStatus.InvalidEmail));
                result = new DataResultUserCreateResult()
                {
                    IsValid = true,
                    MessageType = DataResultMessageType.Error,
                    Data = new CreatedAccountResultModel(MembershipCreateStatus.InvalidEmail)
                };
            }
            else
            {
                if (this.ValidatePasswordStrength(password))
                {

                    using (TransactionScope trans = this.TransactionScopeCreate())
                    {
                        result = this._dal.CreateUser(username, password, email, passwordQuestion, passwordAnswer, activateFormVirtualPath);

                        if (result.Data.CreateStatus == MembershipCreateStatus.Success)
                        {
                            MembershipUserWrapper newUser = _dal.GetUserByName(username, false).Data;

                            IRoleAdminBL _roleBl = new RoleAdminBL();
                            DataResultBoolean newUserRole = _roleBl.AddToRoles(newUser.UserName, new string[1] { SiteRoles.Guest.ToString() });
                            _roleBl.Dispose();

                            ProfileBL _profileBL = new ProfileBL();
                            UserProfileModel usrProfile = _profileBL.Create(username).Data;
                            _profileBL.Dispose();

                            ITokenTemporaryPersistenceBL<MembershipUserWrapper> _tokenServices = new TokenTemporaryPersistenceBL<MembershipUserWrapper>();
                            TokenTemporaryPersistenceServiceItem<MembershipUserWrapper> token = new TokenTemporaryPersistenceServiceItem<MembershipUserWrapper>(newUser);
                            _tokenServices.Insert(token);
                            result.Data.ActivateUserToken = token.Token;
                            _tokenServices.Dispose();

                            if (newUserRole.Data)
                            {
                                MailMessage mail = new MailMessage();
                                mail.From = new MailAddress(ApplicationConfiguration.MailingSettingsSection.SupportTeamEmailAddress);
                                mail.Bcc.Add(new MailAddress(newUser.Email));
                                mail.Subject = string.Format(AccountResources.CreateNewAccount_EmailSubject, ApplicationConfiguration.DomainInfoSettingsSection.DomainName);
                                mail.Body = string.Format(AccountResources.CreateNewAccount_EmailBody,
                                                                            ApplicationConfiguration.DomainInfoSettingsSection.DomainName,
                                                                            new Uri(string.Format("{0}://{1}{2}/{3}",
                                                                                                                    ApplicationConfiguration.DomainInfoSettingsSection.SecurityProtocol,
                                                                                                                    ApplicationConfiguration.DomainInfoSettingsSection.DomainName,
                                                                                                                    activateFormVirtualPath.ToString(),
                                                                                                                    result.Data.ActivateUserToken)));

                                using (ISmtpClient smtp = DependencyFactory.Resolve<ISmtpClient>())
                                {
                                    smtp.Send(mail);
                                }

                                trans.Complete();
                            }
                            else
                            {
                                trans.Dispose();
                            }
                        }
                        else
                        {
                            trans.Dispose();
                        }
                    }
                }
                else
                {
                    result = new DataResultUserCreateResult()
                    {
                        IsValid = true,
                        MessageType = DataResultMessageType.Error,
                        Data = new CreatedAccountResultModel(MembershipCreateStatus.InvalidPassword)
                    };

                }
            }
            return result;
        }
Exemple #2
0
        public JsonResult Create(Profile pro)
        {
            var json = JsonConvert.SerializeObject(bl.Create(pro));

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