public void RefreshSession()
        {
            DebugLogger.Log($"Refresh Session: Header Value: {Service.SessionHeaderValue.sessionId}, ContextValue: {SessionContext.Session.Id}");

            if (string.Equals(Service.SessionHeaderValue.sessionId, SessionContext.Session.Id))
            {
                SessionContext.Refresh();
            }

            try
            {
                Service.SessionHeaderValue.sessionId = SessionContext.Session.Id;
            }
            catch (Exception e)
            {
                ErrorLogger.Log("Is this the 'Cannot change header value' issue I've been seeing?", e);
            }
        }
        public ISalesforceSession Create([CallerMemberName] string CallerMemberName = "", [CallerFilePath] string CallerFilePath = "", [CallerLineNumber] int CallerLineNumber = 0)
        {
            //TODO: Salesforce logging.
            DebugLogger.Log($"Salesforced called by: {CallerMemberName}, File: {CallerFilePath}, Line Number {CallerLineNumber}");
            var username = Configuration.Username;
            var password = string.Concat(Configuration.Password, Configuration.Token);
            var service  = new SforceService
            {
                Url     = Configuration.Url,
                Timeout = Configuration.Timeout
            };

            var result = service.login(username, password);

            return(new SalesforceSession
            {
                Id = result.sessionId
            });
        }