示例#1
0
        public OperationStatus TryRegister(UserRegistrationClient registerUser, out TokenUser tokenUser)
        {

            if (registerUser == null) { tokenUser = null; return OperationStatus.DataFormatError; }

            tokenUser = null;
            registerUser.ServerStatus = false;
            OperationStatus status = OperationStatus.None;
            
            try
            {
                var circleUser = _userWork.Create();
                circleUser.UserName = registerUser.UserName;
                circleUser.RegisterEmail = registerUser.RegisterEmail;
                circleUser.Password = registerUser.Password;
                status = _userWork.Save(circleUser);

                if (status == OperationStatus.Success)
                {
                    MemberRole role = _roleWork.AllCacheItems.Where(x => x.Id == circleUser.RoleId).SingleOrDefault();
                    tokenUser = new TokenUser(circleUser, role);
                    SecurityManager.AddOrUpdateCurrentTokenUser(tokenUser);
                    status = OperationStatus.RegisterSuccess;
                    registerUser.ServerStatus = true;
                    return status;
                }
            }
            catch (Exception ex)
            {
                tokenUser = null;
                status = OperationStatus.GenericError;
                registerUser.ServerStatus = false;
                LoggingWork.Error(ex);
            }
            
           
            tokenUser = null;
            return status;
        }
        public ClientJsonResult Register(UserRegistrationClient registerUser)
        {
            if (registerUser != null)
            {
                try
                {
                    registerUser.ClearNotifications();
                    IAccountDriver driver = DependencyResolver.Current.GetService<IAccountDriver>();
                    TokenUser tokenUser;
                    OperationStatus status = driver.TryRegister(registerUser, out tokenUser);
                    if (status == OperationStatus.RegisterSuccess)
                    {
                        SaveTicketToCookie(tokenUser, false);
                        TokenUserClient clientTokenUser = new TokenUserClient(tokenUser);
                        clientTokenUser.AddSuccessNotification(MessageManager.GetMessage(status));
                        return ClientJson(clientTokenUser);
                    }
                    else
                    {
                        registerUser.ServerStatus = false;
                        registerUser.AddErrorNotification(MessageManager.GetMessage(status));
                    }
                }
                catch (Exception ex)
                {
                    registerUser.ServerStatus = false;
                    LoggingWork.Error(ex);
                    registerUser.AddErrorNotification(MessageManager.GetMessage(OperationStatus.GenericError));
                }
            }
            else
            {
                registerUser = new UserRegistrationClient() { ServerStatus = false };
                registerUser.AddErrorNotification(MessageManager.GetMessage(OperationStatus.DataFormatError));
            }

            return ClientJson(registerUser);
        }
        public ActionResult UserRegister(UserRegisterViewModel registerUser)
        {
            string errorMessage = null;
            if (registerUser == null)
            {
                registerUser = new UserRegisterViewModel();
                errorMessage = MessageManager.GetMessage(OperationStatus.DataFormatError);
            }
            else
            {
                try
                {
                    IAccountDriver driver = DependencyResolver.Current.GetService<IAccountDriver>();
                    TokenUser tokenUser;
                    UserRegistrationClient client = new UserRegistrationClient()
                                                    {
                                                        UserName = registerUser.UserName,
                                                        RegisterEmail = registerUser.RegisterEmail,
                                                        Password = registerUser.Password
                                                    };
                    OperationStatus status = driver.TryRegister(client, out tokenUser);
                    if (status == OperationStatus.RegisterSuccess)
                    {
                        SaveTicketToCookie(tokenUser, false);
                        string returnUrl = FormsAuthentication.GetRedirectUrl(string.Empty, false);
                        return Redirect(returnUrl);
                    }
                    else
                    {
                        errorMessage = MessageManager.GetMessage(status);
                    }
                }
                catch
                {
                    errorMessage = MessageManager.GetMessage(OperationStatus.GenericError);
                }
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                ViewBag.ErrorMessage = errorMessage;
            }
            return PartialView("_UserRegister", registerUser);
        }