コード例 #1
0
 public static string Search(string searchString, SalesforceSession session)
 {
     return(XmlRequestGenerator.GenerateRequest(new XmlBody
     {
         SearchTemplate = new SearchTemplate(searchString)
     }, BuildXmlHeader(session)));
 }
コード例 #2
0
 internal static string Query(string query, SalesforceSession session)
 {
     return(XmlRequestGenerator.GenerateRequest(new XmlBody
     {
         QueryTemplate = new QueryTemplate(query)
     }, BuildXmlHeader(session)));
 }
コード例 #3
0
 public static string QueryMore(string queryLocator, SalesforceSession session)
 {
     return(XmlRequestGenerator.GenerateRequest(new XmlBody
     {
         QueryMoreTemplate = new QueryMoreTemplate(queryLocator)
     }, BuildXmlHeader(session)));
 }
コード例 #4
0
        private bool CheckSessionValidity(string key, SalesforceSession session)
        {
            bool valid = DateTime.Now - session.LastLogin > SessionStoragePolicy.SessionStorageExpiration;
            if (!valid) _store.Remove(key);

            return valid;
        }
コード例 #5
0
 internal static string Delete(string[] ids, SalesforceSession session)
 {
     return(XmlRequestGenerator.GenerateRequest(new XmlBody
     {
         DeleteTemplate = new DeleteTemplate
         {
             Ids = ids
         }
     }, BuildXmlHeader(session)));
 }
コード例 #6
0
        public bool StoreSession(SalesforceSession session)
        {
            string key = GenerateCacheKey(session.Environment ?? "Default");
            if (_store.Contains(key)) _store.Remove(key);

            return _store.Add(key, session, new CacheItemPolicy
            {
                AbsoluteExpiration = DateTime.Now.Add(SessionStoragePolicy.SessionStorageExpiration)
            });
        }
コード例 #7
0
 internal static string Retrieve <T>(string[] ids, SalesforceSession session) where T : SObject
 {
     return(XmlRequestGenerator.GenerateRequest(new XmlBody
     {
         RetrieveTemplate = new RetrieveTemplate
         {
             Type = typeof(T),
             Ids = ids
         }
     }, BuildXmlHeader(session)));
 }
コード例 #8
0
        public static HttpRequest GetBatchRequest <T>(T[] items, string jobId, SalesforceSession session) where T : SObject
        {
            HttpRequest request = new HttpRequest
            {
                Url         = GetBulkUrl(session.InstanceUrl, session.ApiVersion) + "/" + jobId + "/batch",
                Body        = BulkCommands.CreateBatch(items),
                Method      = RequestType.POST,
                ContentType = "text/csv; charset=UTF-8"
            };

            request.Headers.Add("X-SFDC-Session", session.SessionId);

            return(request);
        }
コード例 #9
0
        public static HttpRequest GetQueryJobRequest(string jobId, SalesforceSession session)
        {
            HttpRequest request = new HttpRequest
            {
                Url         = GetBulkUrl(session.InstanceUrl, session.ApiVersion) + "/" + jobId,
                Body        = null,
                Method      = RequestType.GET,
                ContentType = "application/xml"
            };

            request.Headers.Add("X-SFDC-Session", session.SessionId);

            return(request);
        }
コード例 #10
0
        public static HttpRequest GetSearchRequest(string searchString, SalesforceSession session)
        {
            HttpRequest request = new HttpRequest
            {
                Url    = GetSoapUrl(session.InstanceUrl, session.ApiVersion),
                Body   = SoapCommands.Search(searchString, session),
                Method = RequestType.POST,
                Proxy  = session.Proxy
            };

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

            return(request);
        }
コード例 #11
0
        internal static HttpRequest GetQueryMoreRequest(string queryLocator, SalesforceSession session)
        {
            HttpRequest request = new HttpRequest
            {
                Url    = GetSoapUrl(session.InstanceUrl, session.ApiVersion),
                Body   = SoapCommands.QueryMore(queryLocator, session),
                Method = RequestType.POST,
                Proxy  = session.Proxy
            };

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

            return(request);
        }
コード例 #12
0
        public static HttpRequest GetStartJobRequest <T>(JobConfig config, SalesforceSession session)
        {
            HttpRequest request = new HttpRequest
            {
                Url         = GetBulkUrl(session.InstanceUrl, session.ApiVersion),
                Body        = BulkCommands.CreateJob(config, typeof(T).GetName()),
                Method      = RequestType.POST,
                ContentType = "application/xml"
            };

            request.Headers.Add("X-SFDC-Session", session.SessionId);

            return(request);
        }
コード例 #13
0
        internal static HttpRequest GetRetrieveRequest <T>(string[] ids, SalesforceSession session) where T : SObject
        {
            string      body    = SoapCommands.Retrieve <T>(ids, session);
            HttpRequest request = new HttpRequest
            {
                Url    = GetSoapUrl(session.InstanceUrl, session.ApiVersion),
                Body   = body,
                Method = RequestType.POST,
                Proxy  = session.Proxy
            };

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

            return(request);
        }
コード例 #14
0
        internal static HttpRequest GetDeleteRequest(string[] ids, SalesforceSession session)
        {
            string      body    = SoapCommands.Delete(ids, session);
            HttpRequest request = new HttpRequest
            {
                Url    = GetSoapUrl(session.InstanceUrl, session.ApiVersion),
                Body   = body,
                Method = RequestType.POST,
                Proxy  = session.Proxy
            };

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

            return(request);
        }
コード例 #15
0
        internal static HttpRequest GetCrudRequest <T>(CrudOperation <T> operation, SalesforceSession session) where T : SObject
        {
            string      body    = SoapCommands.CrudOperation(operation, session);
            HttpRequest request = new HttpRequest
            {
                Url    = GetSoapUrl(session.InstanceUrl, session.ApiVersion),
                Body   = body,
                Method = RequestType.POST,
                Proxy  = session.Proxy
            };

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

            return(request);
        }
コード例 #16
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);
                }
            }
        }
コード例 #17
0
        private static XmlHeader BuildXmlHeader(SalesforceSession session)
        {
            var header = new XmlHeader
            {
                SessionHeader = new SessionHeader
                {
                    SessionId = session.SessionId
                }
            };

            if (session.BatchSize.HasValue)
            {
                header.QueryOptions = new QueryOptionsHeader
                {
                    BatchSize = session.BatchSize.Value
                };
            }

            return(header);
        }
コード例 #18
0
ファイル: MainForm.cs プロジェクト: walizada/SandboxBerry
        private void uxTestLoginTarget_Click(object sender, EventArgs e)
        {
            var targetCred = GetTargetCredentials();
            var sesh       = new SalesforceSession(targetCred);

            uxTestLoginTargetLabel.Text    = "Testing login ...";
            uxTestLoginTargetLabel.Visible = true;
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                sesh.TestLogin();
                uxTestLoginTargetLabel.Text = "Login OK";
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                uxTestLoginTargetLabel.Text = "Login failed";
                Cursor.Current = Cursors.Default;
                MessageBox.Show(string.Format("Test login failed for Target \r\n\r\n {0}", ex.Message), "Test login failed", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
コード例 #19
0
        public static string CrudOperation <T>(CrudOperation <T> operation, SalesforceSession session) where T : SObject
        {
            XmlBody body = GetCrudBody(operation);

            return(XmlRequestGenerator.GenerateRequest(body, BuildXmlHeader(session)));
        }
コード例 #20
0
        internal static HttpRequest GetCountRequest <T>(SalesforceSession session, Expression <Func <T, bool> > predicate = null)
        {
            string query = QueryBuilder.GenerateCountyQuery(predicate);

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

            return(GetQueryRequest(query, session));
        }
コード例 #22
0
        internal static HttpRequest GetSearchRequest <T>(string searchQuery, string fieldType, SalesforceSession session) where T : SObject
        {
            string search = QueryBuilder.GenerateSearchQuery <T>(searchQuery, fieldType);

            return(GetSearchRequest(search, session));
        }
コード例 #23
0
        internal static HttpRequest GetQueryAllRequest <T>(int limit, SalesforceSession session) where T : SObject
        {
            string query = QueryBuilder.GenerateQuery <T>(limit);

            return(GetQueryRequest(query, session));
        }