/// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="recurringJobManager"></param>
        /// <param name="settingsManager"></param>
        /// <param name="enablerSetting"></param>
        /// <param name="cronSetting"></param>
        /// <param name="methodCall"></param>
        /// <param name="jobId"></param>
        /// <param name="queue"></param>
        public static void WatchJobSetting <T>(this IRecurringJobManager recurringJobManager,
                                               ISettingsManager settingsManager,
                                               SettingDescriptor enablerSetting,
                                               SettingDescriptor cronSetting,
                                               Expression <Func <T, Task> > methodCall,
                                               string jobId,
                                               TimeZoneInfo timeZoneInfo,
                                               string queue)
        {
            if (recurringJobManager == null)
            {
                throw new ArgumentNullException(nameof(recurringJobManager));
            }
            if (settingsManager == null)
            {
                throw new ArgumentNullException(nameof(settingsManager));
            }

            var settingCronJob = new SettingCronJobBuilder(new SettingCronJob())
                                 .SetEnablerSetting(enablerSetting)
                                 .SetCronSetting(cronSetting)
                                 .SetJobId(jobId)
                                 .SetQueueName(queue)
                                 .SetTimeZoneInfo(timeZoneInfo)
                                 .ToJob(methodCall)
                                 .Build();

            recurringJobManager.WatchJobSettingAsync(settingsManager, settingCronJob).GetAwaiter().GetResult();
        }
 /// <summary>
 /// use SettingCronJobBuilder for preparing SettingCronJob
 /// </summary>
 /// <param name="recurringJobManager"></param>
 /// <param name="settingsManager"></param>
 /// <param name="settingCronJob"></param>
 /// <returns></returns>
 public static void WatchJobSetting(this IRecurringJobManager recurringJobManager,
                                    ISettingsManager settingsManager,
                                    SettingCronJob settingCronJob)
 {
     recurringJobManager.WatchJobSettingAsync(settingsManager, settingCronJob).GetAwaiter().GetResult();
 }