private async ETVoid RunAsync(Session session, C2R_SignUp message, Action <R2C_SignUp> reply)
        {
            R2C_SignUp response = new R2C_SignUp();

            try
            {
                var plain = CryptographyHelper.AESDecrypt(message.Secret);
                var req   = BsonSerializer.Deserialize <C2R_SignUp>(plain);
                response.Error = await UserDataHelper.SignUp(req.Email, req.Password);

                if (response.Error != ErrorCode.ERR_Success)
                {
                    response.ErrorCodeList = new RepeatedField <int> {
                        ErrorCode.ERR_AccountSisnUpRepeatly
                    };
                }
                reply(response);
            }
            catch (Exception e)
            {
                ReplyError(response, e, reply);
            }
        }