コード例 #1
0
        public static HttpRequest GetQueryRequest(string query, int limit, ZuoraSession session)
        {
            HttpRequest request = new HttpRequest
            {
                Url    = session.InstanceUrl + session.SoapUrl,
                Body   = SoapCommands.Query(query, limit, session.SessionId),
                Method = RequestType.POST,
            };

            request.Headers.Add("SOAPAction", "query");

            return(request);
        }
コード例 #2
0
        public static HttpRequest GetCrudRequest <T>(CrudOperation <T> operation, ZuoraSession session) where T : ZObject
        {
            string      body    = SoapCommands.CrudOperation(operation, session.SessionId);
            HttpRequest request = new HttpRequest
            {
                Url    = session.InstanceUrl + session.SoapUrl,
                Body   = body,
                Method = RequestType.POST,
            };

            request.Headers.Add("SOAPAction", operation.OperationType.ToString().ToLower());

            return(request);
        }
コード例 #3
0
        public static HttpRequest GetCreateExportRequest(string query, ZuoraSession session, string name = "Export")
        {
            HttpRequest request = new HttpRequest
            {
                Url  = session.InstanceUrl + session.SoapUrl,
                Body = ExportCommands.CreateExport(new Export
                {
                    Format = "csv",
                    Name   = name,
                    Query  = query
                }, session.SessionId),
                Method = RequestType.POST,
            };

            request.Headers.Add("SOAPAction", "create");

            return(request);
        }
コード例 #4
0
        /// <summary>
        ///     Login Action
        ///     - Stores session data for re-use
        /// </summary>
        /// <returns></returns>
        public ZuoraSession Login()
        {
            lock (Lock)
            {
                ZuoraSession session;
                if (_config.UseSessionStore)
                {
                    session = _sessionStore.RetrieveSession(_config.EnvironmentName ?? "Default");
                    if (session != null)
                    {
                        return(session);
                    }
                }

                if (_config.Session != null)
                {
                    return(_config.Session);
                }

                using (HttpClient httpClient = new HttpClient())
                {
                    XmlDocument response = httpClient.PerformRequest(SoapRequestManager.GetLoginRequest(_config));
                    SimpleLogin result   = ResponseReader.ReadGenericResponse <SimpleLogin>(response);

                    Uri instanceUrl = new Uri(result.ServerUrl);
                    session = new ZuoraSession
                    {
                        SoapUrl     = _config.SoapUrl,
                        InstanceUrl = instanceUrl.Scheme + "://" + instanceUrl.Host,
                        SessionId   = result.SessionId
                    };

                    if (_config.UseSessionStore)
                    {
                        _sessionStore.StoreSession(session);
                    }
                    _config.Session     = session;
                    _config.InstanceUrl = session.InstanceUrl;

                    return(session);
                }
            }
        }
コード例 #5
0
        public static HttpRequest GetQueryRequest <T>(Expression <Func <T, bool> > predicate, int limit, ZuoraSession session) where T : ZObject
        {
            string query = QueryBuilder.GenerateQuery(predicate);

            return(GetQueryRequest(query, limit, session));
        }