コード例 #1
0
        public Task <T> PostAsync <T>(IRestRequest postRequest, CancellationToken cancellationToken)
        {
            SFRestRequest sfRequest = (SFRestRequest)postRequest;

            if (sfRequest.jsonBody is AuthnRequest)
            {
                AuthnResponse authnResponse = new AuthnResponse
                {
                    data = new AuthnResponseData()
                    {
                        token                   = "session_token",
                        masterToken             = "master_token",
                        authResponseSessionInfo = new SessionInfo(),
                        nameValueParameter      = new List <NameValueParameter>()
                    },
                    success = true
                };

                // login request return success
                return(Task.FromResult <T>((T)(object)authnResponse));
            }
            CloseResponse closeResponse = new CloseResponse
            {
                message = "Session no longer exists.  New login required to access the service.",
                data    = null,
                code    = SESSION_GONE,
                success = false
            };

            return(Task.FromResult <T>((T)(object)closeResponse));
        }
        public Task <T> GetAsync <T>(IRestRequest request, CancellationToken cancellationToken)
        {
            SFRestRequest sfRequest = (SFRestRequest)request;

            if (getResultCallCount == 0)
            {
                getResultCallCount++;
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = false,
                    code    = QUERY_IN_EXEC_CODE
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
            else if (getResultCallCount == 1)
            {
                getResultCallCount++;
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = false,
                    code    = SESSION_EXPIRED_CODE
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
            else if (getResultCallCount == 2 &&
                     sfRequest.authorizationToken.Equals("Snowflake Token=\"new_session_token\""))
            {
                getResultCallCount++;
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = true,
                    data    = new QueryExecResponseData
                    {
                        rowSet = new string[, ] {
                            { "1" }
                        },
                        rowType = new List <ExecResponseRowType>()
                        {
                            new ExecResponseRowType
                            {
                                name = "colone",
                                type = "FIXED"
                            }
                        },
                        parameters = new List <NameValueParameter>()
                    }
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
            else
            {
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = false,
                    code    = 1
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
        }
        public Task <T> PostAsync <T>(IRestRequest request, CancellationToken cancellationToken)
        {
            SFRestRequest sfRequest = (SFRestRequest)request;

            if (sfRequest.jsonBody is AuthnRequest)
            {
                AuthnResponse authnResponse = new AuthnResponse
                {
                    data = new AuthnResponseData()
                    {
                        token                   = "session_token",
                        masterToken             = "master_token",
                        authResponseSessionInfo = new SessionInfo(),
                        nameValueParameter      = new List <NameValueParameter>()
                    },
                    success = true
                };

                // login request return success
                return(Task.FromResult <T>((T)(object)authnResponse));
            }
            else if (sfRequest.jsonBody is QueryRequest)
            {
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = false,
                    code    = QUERY_IN_EXEC_CODE
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
            else if (sfRequest.jsonBody is RenewSessionRequest)
            {
                return(Task.FromResult <T>((T)(object)new RenewSessionResponse
                {
                    success = true,
                    data = new RenewSessionResponseData()
                    {
                        sessionToken = "new_session_token"
                    }
                }));
            }
            else
            {
                return(Task.FromResult <T>((T)(object)null));
            }
        }
 public T Get <T>(SFRestRequest request)
 {
     return(Task.Run(async() => await GetAsync <T>(request, CancellationToken.None)).Result);
 }
 public T Post <T>(SFRestRequest postRequest)
 {
     return(Task.Run(async() => await PostAsync <T>(postRequest, CancellationToken.None)).Result);
 }
コード例 #6
0
        public Task <T> PostAsync <T>(IRestRequest request, CancellationToken cancellationToken)
        {
            SFRestRequest sfRequest = (SFRestRequest)request;

            if (sfRequest.jsonBody is LoginRequest)
            {
                LoginResponse authnResponse = new LoginResponse
                {
                    data = new LoginResponseData()
                    {
                        token                   = EXPIRED_SESSION_TOKEN,
                        masterToken             = "master_token",
                        authResponseSessionInfo = new SessionInfo(),
                        nameValueParameter      = new List <NameValueParameter>()
                    },
                    success = true
                };

                // login request return success
                return(Task.FromResult <T>((T)(object)authnResponse));
            }
            else if (sfRequest.jsonBody is QueryRequest)
            {
                if (sfRequest.authorizationToken.Equals(String.Format(TOKEN_FMT, EXPIRED_SESSION_TOKEN)))
                {
                    FirstTimeRequestID = ExtractRequestID(sfRequest.Url.Query);
                    QueryExecResponse queryExecResponse = new QueryExecResponse
                    {
                        success = false,
                        code    = SESSION_EXPIRED_CODE
                    };
                    return(Task.FromResult <T>((T)(object)queryExecResponse));
                }
                else if (sfRequest.authorizationToken.Equals(String.Format(TOKEN_FMT, "new_session_token")))
                {
                    SecondTimeRequestID = ExtractRequestID(sfRequest.Url.Query);
                    QueryExecResponse queryExecResponse = new QueryExecResponse
                    {
                        success = true,
                        data    = new QueryExecResponseData
                        {
                            rowSet = new string[, ] {
                                { "1" }
                            },
                            rowType = new List <ExecResponseRowType>()
                            {
                                new ExecResponseRowType
                                {
                                    name = "colone",
                                    type = "FIXED"
                                }
                            },
                            parameters = new List <NameValueParameter>()
                        }
                    };
                    return(Task.FromResult <T>((T)(object)queryExecResponse));
                }
                else
                {
                    QueryExecResponse queryExecResponse = new QueryExecResponse
                    {
                        success = false,
                        code    = 1
                    };
                    return(Task.FromResult <T>((T)(object)queryExecResponse));
                }
            }
            else if (sfRequest.jsonBody is RenewSessionRequest)
            {
                return(Task.FromResult <T>((T)(object)new RenewSessionResponse
                {
                    success = true,
                    data = new RenewSessionResponseData()
                    {
                        sessionToken = "new_session_token",
                        masterToken = "new_master_token"
                    }
                }));
            }
            else
            {
                return(Task.FromResult <T>((T)(object)null));
            }
        }
コード例 #7
0
        public Task <T> PostAsync <T>(IRestRequest request, CancellationToken cancellationToken)
        {
            var message = request.ToRequestMessage(HttpMethod.Post);
            var param   = new NameValueParameter {
                name = "SERVICE_NAME"
            };

            if (!message.Headers.Contains("X-Snowflake-Service"))
            {
                param.value = INIT_SERVICE_NAME;
            }
            else
            {
                IEnumerable <string> headerValues = message.Headers.GetValues("X-Snowflake-Service");
                foreach (string value in headerValues)
                {
                    param.value = value + 'a';
                }
            }

            SFRestRequest sfRequest = (SFRestRequest)request;

            if (sfRequest.jsonBody is AuthnRequest)
            {
                AuthnResponse authnResponse = new AuthnResponse
                {
                    data = new AuthnResponseData()
                    {
                        token                   = "session_token",
                        masterToken             = "master_token",
                        authResponseSessionInfo = new SessionInfo(),
                        nameValueParameter      = new List <NameValueParameter>()
                        {
                            param
                        }
                    },
                    success = true
                };

                // login request return success
                return(Task.FromResult <T>((T)(object)authnResponse));
            }
            else if (sfRequest.jsonBody is QueryRequest)
            {
                QueryExecResponse queryExecResponse = new QueryExecResponse
                {
                    success = true,
                    data    = new QueryExecResponseData
                    {
                        rowSet = new string[, ] {
                            { "1" }
                        },
                        rowType = new List <ExecResponseRowType>()
                        {
                            new ExecResponseRowType
                            {
                                name = "colone",
                                type = "FIXED"
                            }
                        },
                        parameters = new List <NameValueParameter> {
                            param
                        }
                    }
                };
                return(Task.FromResult <T>((T)(object)queryExecResponse));
            }
            else
            {
                return(Task.FromResult <T>((T)(object)null));
            }
        }
 public Task <T> GetAsync <T>(SFRestRequest request, CancellationToken cancellationToken)
 {
     return(Task.FromResult <T>((T)(object)null));
 }