public async Task <IActionResult> RegisterAccount(Models_Twelve_Register_Request model)
        {
            // Using ModelState to help validate the input from the end user

            var ip = _accessor.ActionContext.HttpContext.Connection.RemoteIpAddress.ToString();

            if (!ModelState.IsValid)
            {
                IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
                return(Ok(new Resp(HttpStatusCode.BadRequest, 0, allErrors.Select(x => x.ErrorMessage))));
            }

            var result = await _twelve_service.UserRegisterNewAccount(model.LoginId, model.Password, model.CountryCode, model.Upline);

            if (result.Item1 == Models_General.SUCC_CREATE_ACCOUNT)
            {
                var token = _jwt_services.GenerateJWTToken(result.Item2, model.LoginId, "MEMBER", model.CountryCode, ip, 1, _settings.Value.JWTSecret, _settings.Value.Issuer, _settings.Value.Audience);
                return(Ok(new Resp(HttpStatusCode.OK, result.Item1, token)));
            }
            else if (result.Item1 == Models_General.SUCC_CREATE_ACCOUNT_WITHOUT_GAME_ACCOUNT)
            {
                var token = _jwt_services.GenerateJWTToken(result.Item2, model.LoginId, "MEMBER", model.CountryCode, ip, 2, _settings.Value.JWTSecret, _settings.Value.Issuer, _settings.Value.Audience);
                return(Ok(new Resp(HttpStatusCode.OK, result.Item1, token)));
            }
            else
            {
                return(Ok(new Resp(HttpStatusCode.BadRequest, result.Item1)));
            }
        }
        public IActionResult Login(Models_Login_Request model)
        {
            // Using ModelState to help validate the input from the end user
            if (!ModelState.IsValid)
            {
                IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
                return(Ok(new Resp(HttpStatusCode.BadRequest, 0, allErrors.Select(x => x.ErrorMessage))));
            }



            var ip     = _accessor.ActionContext.HttpContext.Connection.RemoteIpAddress.ToString();
            var result = _user_service.AuthrorizeAccount(model.LoginID, model.Password, model.LoginCountry, ip);

            if (result.Item1 == Models_General.SUCC_AUTHORIZE_GRANTED)
            {
                var secrect = _settings.Value.JWTSecret;
                var token   = _jwt_services.GenerateJWTToken(result.Item2, model.LoginID, "MEMBER", model.LoginCountry, ip, result.Item3, _settings.Value.JWTSecret, _settings.Value.Issuer, _settings.Value.Audience);
                return(Ok(new Resp(HttpStatusCode.OK, result.Item1, token)));
            }
            else
            {
                return(Ok(new Resp(HttpStatusCode.BadRequest, result.Item1)));
            }
        }