private string GetEnvironment(SalesforceEnvironmentType environmentType)
        {
            switch (environmentType)
            {
            case SalesforceEnvironmentType.Sandbox:
                return("test");

            default:
                return("login");
            }
        }
        public bool Login(string username, string password, string securityToken = null,
                          SalesforceEnvironmentType environment = SalesforceEnvironmentType.CustomDomain, string environmentUrl = null)
        {
            string str = environment == SalesforceEnvironmentType.CustomDomain
                ? environmentUrl
                : GetEnvironment(environment);

            SaveUserCredentials(username, password, securityToken, environment, str);

            string passwordFormatted = password + (securityToken ?? string.Empty);

            LoginResult loginResult;

            try
            {
                _partnerServiceAdapter.SetupClientId(ClientName);
                loginResult = _partnerServiceAdapter.Login(username, passwordFormatted, str);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                return(false);
            }

            if (loginResult == null || loginResult.passwordExpired)
            {
                return(false);
            }

            _sessionId = loginResult.sessionId;
            IsLoggedIn = true;

            SetupToolingAdapter(loginResult.serverUrl);
            SetupMetadataAdapter(loginResult.metadataServerUrl);
            SetupPartneraAdapter(loginResult.serverUrl);
            return(true);
        }
 private void SaveUserCredentials(string username, string password, string securityToken, SalesforceEnvironmentType environment, string domain)
 {
     _salesForceEnvionment.AuthorizationCredential.UserName        = username;
     _salesForceEnvionment.AuthorizationCredential.Password        = password;
     _salesForceEnvionment.AuthorizationCredential.Token           = securityToken;
     _salesForceEnvionment.AuthorizationCredential.EnvironmentType = environment;
     _salesForceEnvionment.AuthorizationCredential.Url             = domain;
 }