public IMailboxManager CreateMailboxManager(Config.EmailSettings emailSettings)
        {
            var    credentialsHelper = new Helpers.CredentialsHelper();
            string password          = credentialsHelper.GetPassword(emailSettings.EWSPasswordFile, emailSettings.EncryptionScope, emailSettings.EWSKeyVaultSecret);
            var    credentials       = new EWSConnectionManger.Credentials
            {
                EmailAddress = emailSettings.EWSMailboxAddress,
                UserName     = emailSettings.EWSUsername,
                Password     = password
            };

            var exchangeService = _connectionManger.GetConnection(credentials, emailSettings.UseConversationGuidOnly);
            var postProcessor   = GetPostProcesor(emailSettings, exchangeService.Service);

            switch (emailSettings.ServiceType)
            {
            case Config.EmailSettings.MailboxServiceType.EWSByFolder:
                return(new FolderMailboxManager(
                           exchangeService.Service,
                           emailSettings.IncomingFolder,
                           postProcessor));

            case Config.EmailSettings.MailboxServiceType.EWSByRecipients:

                return(new RecipientsMailboxManager(
                           exchangeService.Router,
                           ParseDelimitedList(emailSettings.Recipients, ';'),
                           postProcessor));

            default:
                throw new BadConfigException(
                          "EmailSettings.ServiceType",
                          string.Format("Invalid mailbox service type defined in config ({0})", emailSettings.ServiceType));
            }
        }
        private string GetPatFromConfig()
        {
            if (string.IsNullOrWhiteSpace(_config.TfsServerConfig.ServiceIdentityPatFile) && _config.TfsServerConfig.ServiceIdentityPatKeyVaultSecret == null)
            {
                return(null);
            }

            var credentialsHelper = new Helpers.CredentialsHelper();

            return(credentialsHelper.GetPassword(
                       _config.TfsServerConfig.ServiceIdentityPatFile,
                       _config.TfsServerConfig.EncryptionScope,
                       _config.TfsServerConfig.ServiceIdentityPatKeyVaultSecret));
        }
        private Tuple <string, string> GetServiceIdentityUsernameAndPasswordFromConfig()
        {
            if ((string.IsNullOrWhiteSpace(_config.TfsServerConfig.ServiceIdentityPasswordFile) ||
                 string.IsNullOrWhiteSpace(_config.TfsServerConfig.ServiceIdentityUsername)
                 ) &&
                _config.TfsServerConfig.ServiceIdentityKeyVaultSecret == null)
            {
                return(null);
            }

            var    credentialsHelper = new Helpers.CredentialsHelper();
            string password          = credentialsHelper.GetPassword(
                _config.TfsServerConfig.ServiceIdentityPasswordFile,
                _config.TfsServerConfig.EncryptionScope,
                _config.TfsServerConfig.ServiceIdentityKeyVaultSecret);

            return(new Tuple <string, string>(_config.TfsServerConfig.ServiceIdentityUsername, password));
        }