예제 #1
0
        public ActionResult Register()
        {
            RegisterModel vm = new RegisterModel();
            List<AccountType> types = _uow.AccountTypes.GetAll().ToList();

            vm.AccountTypesList = types;

            return View(vm);
        }
예제 #2
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Попытка зарегистрировать пользователя
                try
                {
                    // Регаем пользователя
                    int userId = MembershipUtils.CreateUser(model.UserName, model.Password, "User");

                    // Тип аккаунта
                    AccountType aType = _uow.AccountTypes.GetAll().FirstOrDefault(t => t.Code == model.AccountTypeCode);

                    if(aType == null)
                    {
                        throw new Exception("Неверный тип пользователя");
                    }

                    // Заполняем профиль
                    UserProfile user = _uow.UserProfiles.GetById(userId);

                    user.FirstName = model.FirstName;
                    user.Surname = model.Surname;
                    user.LastName = model.LastName;
                    user.Phone = model.Phone;
                    user.MobilePhone = model.MobilePhone;
                    user.Email = model.Email;
                    user.PassPhrase = model.PassPhrase;

                    user.AccountType = aType;

                    user.IsMainAccount = true;

                    _uow.SaveChanges();

                    // Авторизуемся
                    MembershipUtils.Login(model.UserName, model.Password);
                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // Появление этого сообщения означает наличие ошибки; повторное отображение формы
            return View(model);
        }