Пример #1
0
        public virtual ActionResult SignUp(ProfileForm model)
        {
            if (ModelState.IsValid)
            {
                var isNoSignUpUser = AuthenticationHelper.IsNoSignUpUser;

                User user;
                if (isNoSignUpUser)
                {
                    user = AuthenticationHelper.CurrentUser;

                    Mapper.Map(model, user);
                    Repository.User.TransformNoSignUpAccount(user);
                    AuthenticationHelper.Authenticate(user.Email);
                }
                else if (Repository.User.FindByEmail(model.EmailForm.Email) != null)
                {
                    user = Repository.User.FindByEmail(model.EmailForm.Email);

                    Mapper.Map(model, user);
                    Repository.User.TransformNoSignUpAccount(user);
                    AuthenticationHelper.Authenticate(user.Email);
                }
                else
                {
                    user = Mapper.Map<User>(model);

                    Repository.User.Add(user);

                    Repository.User.AddEmailConfigurationDefaultValue(user);
                }

                var recommendation = Repository.Recommendation.FindByRecommenderEmail(model.EmailForm.Email);
                if (recommendation != null)
                {
                    recommendation.Recommender = user;
                    Repository.Recommendation.Update(recommendation);
                }

                Flash.Success(Resources.Account.AccountCreated);

                Email.Send<ActivationEmail>(user);
                EventLog.Event<UserRegisteredEvent>(user);


                if (isNoSignUpUser)
                    return RedirectToAction(MVC.StaticPages.Home());

                return RedirectToAction(MVC.Account.SignIn());
            }

            return View(model);
        }
Пример #2
0
        public virtual ActionResult SignUp()
        {
            if (AuthenticationHelper.IsNoSignUpUser)
            {
                var email = AuthenticationHelper.CurrentUser.Email;
                var model = new ProfileForm {
                                    EmailForm = new EmailForm { Email = email }
                                };
                return View(model);
            }

            return View();
        }