private static IDictionary <string, string> InjectSecrets(NuGet.Services.KeyVault.ISecretReaderFactory secretReaderFactory, Dictionary <string, string> argsDictionary)
        {
            var secretReader = secretReaderFactory.CreateSecretReader();

            if (secretReader == null)
            {
                throw new ApplicationException("Could not create a secret reader. Please check your configuration.");
            }

            var secretInjector = secretReaderFactory.CreateSecretInjector(secretReader);

            return(InjectSecrets(secretInjector, argsDictionary));
        }
        /// <summary>
        /// Parses the string[] of <c>args</c> passed into the job into a dictionary of string, string.
        /// Expects the string[] to be set of pairs of argumentName and argumentValue, where, argumentName start with a hyphen
        /// </summary>
        /// <param name="logger">Logger to use for internal logging</param>
        /// <param name="commandLineArgs">Arguments passed to the job via commandline or environment variable settings</param>
        /// <param name="jobName">Jobname to be used to infer environment variable settings</param>
        /// <param name="secretReaderFactory">Creates a secret reader.</param>
        /// <returns>Returns a dictionary of arguments</returns>
        public static IDictionary <string, string> GetJobArgsDictionary(ILogger logger, string[] commandLineArgs, string jobName, NuGet.Services.KeyVault.ISecretReaderFactory secretReaderFactory)
        {
            if (secretReaderFactory == null)
            {
                throw new ArgumentNullException(nameof(secretReaderFactory));
            }

            Dictionary <string, string> argsDictionary = ReadCommandLineArguments(logger, commandLineArgs);

            return(InjectSecrets(secretReaderFactory, argsDictionary));
        }