Exemple #1
0
        public SalesforceSession Login()
        {
            lock (Lock)
            {
                SalesforceSession session;
                if (_config.UseSessionStore)
                {
                    session = _sessionStore.RetrieveSession(_config.Environment ?? "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, "result");

                    Uri instanceUrl = new Uri(result.ServerUrl);
                    session = new SalesforceSession
                    {
                        Environment = _config.Environment,
                        ApiVersion  = _config.ApiVersion,
                        IsSandbox   = _config.IsSandbox,
                        LastLogin   = DateTime.Now,
                        InstanceUrl = instanceUrl.Scheme + "://" + instanceUrl.Host,
                        SessionId   = result.SessionId,
                        Proxy       = _config.Proxy,
                        BatchSize   = _config.BatchSize,
                    };

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

                    return(session);
                }
            }
        }
        /// <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);
                }
            }
        }