Пример #1
0
        public T UseScheduler(Scheduler scheduler)
        {
            _schedulerFactory = () => scheduler;
            _owned            = false;

            return(this as T);
        }
Пример #2
0
        public FileTransferMethod GetFileTransferMethod(long submittedJobInfoId, AdaptorUser loggedUser)
        {
            log.Info("Getting file transfer method for submitted job info ID " + submittedJobInfoId + " with user " + loggedUser.GetLogIdentification());
            SubmittedJobInfo jobInfo = LogicFactory.GetLogicFactory().CreateJobManagementLogic(unitOfWork).GetSubmittedJobInfoById(submittedJobInfoId, loggedUser);
            var certificateGenerator = new CertificateGenerator.CertificateGenerator();

            certificateGenerator.GenerateKey(2048);
            string publicKey      = certificateGenerator.DhiPublicKey();
            string jobDir         = FileSystemUtils.GetJobClusterDirectoryPath(jobInfo.Specification.FileTransferMethod.Cluster.LocalBasepath, jobInfo.Specification);
            var    transferMethod = new FileTransferMethod
            {
                Protocol       = jobInfo.Specification.FileTransferMethod.Protocol,
                ServerHostname = jobInfo.Specification.FileTransferMethod.ServerHostname,
                SharedBasePath = jobDir,
                Credentials    = new AsymmetricKeyCredentials
                {
                    Username   = jobInfo.Specification.ClusterUser.Username,
                    PrivateKey = certificateGenerator.DhiPrivateKey(),
                    PublicKey  = publicKey
                }
            };

            SchedulerFactory.GetInstance(jobInfo.Specification.Cluster.SchedulerType).CreateScheduler(jobInfo.Specification.Cluster).AllowDirectFileTransferAccessForUserToJob(publicKey, jobInfo);
            return(transferMethod);
        }
Пример #3
0
        public async Task <IActionResult> CreateCallback([FromQuery] string cron, [FromQuery] string callback = "http%3A%2F%2Flocalhost%3A5000%2Fscheduler%2Fcallback")
        {
            Logger.LogInformation($"{nameof(cron)}: [{cron}], {nameof(callback)}: [{callback}]");
            if (cron == null)
            {
                return(new JsonResult(new { Code = 400, Message = "CRON表达式不能为空" }));
            }
            // 调度器
            if (Scheduler == null)
            {
                Scheduler = await SchedulerFactory.GetScheduler();
            }
            await Scheduler.Start();

            // 触发器
            var trigger = TriggerBuilder.Create()
                          .WithCronSchedule(cron)
                          .Build();

            // 任务器
            var jobDeatail = JobBuilder.Create <CallbackJob>()
                             .UsingJobData(nameof(callback), callback)
                             .Build();

            await Scheduler.ScheduleJob(jobDeatail, trigger);

            return(new JsonResult(new
            {
                Code = 200,
                Message = "定时回调任务创建成功"
            }));
        }
        public async Task CreateSchedulerForAction_PassesTimerCorrectly()
        {
            //arrange
            var timer    = Substitute.For <IHandleTime>();
            var schedule = new Schedule
            {
                Delay             = TimeSpan.Zero,
                IterationDuration = TimeSpan.FromSeconds(1),
                RepeatCount       = 1
            };

            var action = Substitute.For <ICauseScheduledAnarchy>();
            var sut    = new SchedulerFactory(timer);

            //act
            var scheduler = sut.CreateSchedulerForAction(schedule, action);

            scheduler.StartSchedule();

            // as we can't await StartSchedule (intentionally) we have to resort to a short delay to ensure the timer is called consistently
            await Task.Delay(100);

            //assert
            await timer.Received(1).DelayInitial(schedule, Arg.Any <CancellationToken>());
        }
Пример #5
0
        public void SimpleCalculation()
        {
            const int NUM   = 100;
            const int TOTAL = (NUM + 1) * NUM / 2;

            var sum = new int[NUM];

            var list = new List <ITopologicalNode>(NUM);

            for (var i = 1; i <= NUM; i++)
            {
                var task = new DemoTask(i, n => sum[n - 1] = n);
                list.Add(task);
            }

            var provider = default(TopologicalTaskProvider);

            Assert.DoesNotThrow(() => provider = new TopologicalTaskProvider(list));

            var scheduler = SchedulerFactory.Create(provider);

            scheduler.Run();

            Assert.AreEqual(sum.Sum(), TOTAL);
        }
Пример #6
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {
                values.TryGetValue("Resource", out StringBuilder tmp);
                var serializer = new Dev2JsonSerializer();

                if (tmp != null)
                {
                    var res = serializer.Deserialize <IScheduledResource>(tmp);
                    Dev2Logger.Info("Get Scheduled History. " + tmp, GlobalConstants.WarewolfInfo);
                    IList <IResourceHistory> resources;
                    using (var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                    {
                        resources = model.CreateHistory(res);
                    }
                    return(serializer.SerializeToBuilder(resources));
                }
                Dev2Logger.Debug("No resource Provided", GlobalConstants.WarewolfDebug);
                return(serializer.SerializeToBuilder(new List <IResourceHistory>()));
            }
            catch (Exception e)
            {
                Dev2Logger.Error(e, GlobalConstants.WarewolfError);
                throw;
            }
        }
        public void Start()
        {
            Trace.WriteLine("Service scheduler starting...");
            try
            {
                Scheduler = SchedulerFactory.GetScheduler();

                Trace.WriteLine("Firing triggers...");
                Scheduler.Start();

                Trace.WriteLine("Schedule Jobs");
                foreach (var job in Jobs)
                {
                    var jobDetail = JobBuilder.Create(job.GetType())
                                    .WithIdentity(job.GetType().Name, "group1")
                                    .Build();

                    var tb = TriggerBuilder.Create()
                             .WithIdentity(job.GetType().Name, "group1")
                             .StartNow();
                    var trigger = job.GetSchedule(tb).Build();

                    Scheduler.ScheduleJob(jobDetail, trigger);
                }

                Trace.WriteLine("Do stuff");
            }
            catch (TaskSchedulerException se)
            {
                Trace.WriteLine("Service failed to start");
                Trace.WriteLine(se);
            }
        }
Пример #8
0
        void TryExecute(Dictionary <string, StringBuilder> values, ExecuteMessage result, StringBuilder tmp, Dev2JsonSerializer serializer)
        {
            if (tmp != null)
            {
                var res = serializer.Deserialize <IScheduledResource>(tmp);
                Dev2Logger.Info("Save Scheduled Resource. Scheduled Resource:" + res, GlobalConstants.WarewolfInfo);
                using (var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                {
                    values.TryGetValue("UserName", out StringBuilder userName);
                    values.TryGetValue("Password", out StringBuilder password);
                    if (userName == null || password == null)
                    {
                        result.Message.Append(ErrorResource.NoUserNameAndPassword);
                        result.HasError = true;
                    }
                    else
                    {
                        values.TryGetValue("PreviousResource", out StringBuilder previousTask);

                        model.Save(res, userName.ToString(), password.ToString());
                        if (!string.IsNullOrEmpty(previousTask?.ToString()) && previousTask.ToString() != res.Name)
                        {
                            model.DeleteSchedule(new ScheduledResource(previousTask.ToString(), SchedulerStatus.Disabled, DateTime.MaxValue, null, null, Guid.NewGuid().ToString()));
                        }
                    }
                }
            }
            else
            {
                result.Message.Append(ErrorResource.NoResourceSelected);
                result.HasError = true;
            }
        }
Пример #9
0
        public void CreateNewTask()
        {
            if (_schedulerViewModel.CurrentEnvironment?.Connection != null && !_schedulerViewModel.CurrentEnvironment.Connection.IsConnected)
            {
                ShowServerDisconnectedPopup();
                return;
            }

            if (_schedulerViewModel.IsDirty)
            {
                _schedulerViewModel.PopupController.Show(Core.SchedulerUnsavedTaskMessage, Core.SchedulerUnsavedTaskHeader, MessageBoxButton.OK, MessageBoxImage.Error, null, false, true, false, false, false, false);
                return;
            }

            var dev2DailyTrigger = new Dev2DailyTrigger(new TaskServiceConvertorFactory(), new DailyTrigger());
            var scheduleTrigger  = SchedulerFactory.CreateTrigger(TaskState.Ready, dev2DailyTrigger);
            ScheduledResource scheduledResource = new ScheduledResource(Core.SchedulerNewTaskName + _newTaskCounter, SchedulerStatus.Enabled, scheduleTrigger.Trigger.Instance.StartBoundary, scheduleTrigger, string.Empty, Guid.NewGuid().ToString());

            scheduledResource.OldName = scheduledResource.Name;
            var newres = _schedulerViewModel.ScheduledResourceModel.ScheduledResources[_schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count == 1 ? 0 : _schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count - 1];

            _schedulerViewModel.ScheduledResourceModel.ScheduledResources[_schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count == 1 ? 0 : _schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count - 1] = scheduledResource;
            _schedulerViewModel.ScheduledResourceModel.ScheduledResources.Add(newres);

            _newTaskCounter++;

            _schedulerViewModel.NotifyOfPropertyChange(() => _schedulerViewModel.TaskList);
            _schedulerViewModel.SelectedTask       = _schedulerViewModel.ScheduledResourceModel.ScheduledResources[_schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count == 1 ? 1 : _schedulerViewModel.ScheduledResourceModel.ScheduledResources.Count - 2];
            _schedulerViewModel.WorkflowName       = string.Empty;
            _schedulerViewModel.SelectedTask.IsNew = true;
            ViewModelUtils.RaiseCanExecuteChanged(_schedulerViewModel.NewCommand);
        }
Пример #10
0
        public void ExceptionTest()
        {
            var scheduler = SchedulerFactory.CreateSequentialTaskScheduler(101, i => throw new NotSupportedException());

            scheduler.Run();
            var exceptions = scheduler.Exceptions.ToArray();

            Assert.AreEqual(exceptions.Select(ex => ex.Identifier).Sum(), 5050);

            foreach (var it in exceptions)
            {
                Assert.IsAssignableFrom <NotSupportedException>(it.InnerException);
            }

            scheduler = SchedulerFactory.CreateSequentialTaskScheduler(101, i => throw new NotSupportedException());

            scheduler.RunSynchronously();
            exceptions = scheduler.Exceptions.ToArray();
            Assert.AreEqual(exceptions.Select(ex => ex.Identifier).Sum(), 5050);

            foreach (var it in exceptions)
            {
                Assert.IsAssignableFrom <NotSupportedException>(it.InnerException);
            }
        }
Пример #11
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var result = new ExecuteMessage {
                HasError = false
            };

            Dev2Logger.Info("Delete Scheduled Resource Service");
            StringBuilder tmp;

            values.TryGetValue("Resource", out tmp);
            var serializer = new Dev2JsonSerializer();

            if (tmp != null)
            {
                var res = serializer.Deserialize <IScheduledResource>(tmp);
                Dev2Logger.Info("Delete Scheduled Resource Service." + res);
                using (var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                {
                    model.DeleteSchedule(res);
                }
            }
            else
            {
                Dev2Logger.Info("Delete Scheduled Resource Service. No Resource Selected");
                result.Message.Append("No Resource Selected");
                result.HasError = true;
            }
            return(serializer.SerializeToBuilder(result));
        }
        public ClusterNodeUsage GetCurrentClusterNodeUsage(long clusterNodeId, AdaptorUser loggedUser)
        {
            ClusterNodeType nodeType = GetClusterNodeTypeById(clusterNodeId);

            return(SchedulerFactory.GetInstance(nodeType.Cluster.SchedulerType).CreateScheduler(nodeType.Cluster)
                   .GetCurrentClusterNodeUsage(nodeType));
        }
Пример #13
0
        public async Task <bool> Start()
        {
            var jobDatas = await JobHelper.GetActiveJobListAsync();

            IScheduler scheduler = await SchedulerFactory.GetScheduler();

            scheduler.JobFactory = IOCFactory;


            foreach (var jobData in jobDatas)
            {
                try
                {
                    DateTime startTime = jobData.StartTime ?? DateTime.Now;
                    DateTime?endTime   = jobData.EndTime;

                    ITrigger   trigger   = JobHelper.CreateTrigger(jobData.JobName, jobData.JobGroup, startTime, jobData.CronExpression, endTime);
                    IJobDetail jobDetail = JobHelper.CreateDetail <JobExecute>(jobData.JobName, jobData.JobGroup, jobData.DeepCloneByXML());

                    await scheduler.ScheduleJob(jobDetail, trigger);
                }
                catch
                {
                }
            }
            await scheduler.Start();

            return(true);
        }
Пример #14
0
        public T UseSchedulerFactory(SchedulerFactory schedulerFactory)
        {
            _schedulerFactory = schedulerFactory;
            _owned            = false;

            return(this as T);
        }
Пример #15
0
        public static void SetAnonymousActorSchedulerFactory(SchedulerFactory schedulerFactory)
        {
            Guard.AgainstNull(schedulerFactory, "schedulerFactory");

            _schedulerFactory = schedulerFactory;

            CreateAnonymousActorFactory();
        }
Пример #16
0
        public void Async()
        {
            var result    = new int[101];
            var scheduler = SchedulerFactory.CreateSequentialTaskScheduler(101, i => result[i] = i);

            scheduler.Run();
            Assert.AreEqual(result.Sum(), 5050);
        }
Пример #17
0
        public void Sync()
        {
            var sum       = 0;
            var scheduler = SchedulerFactory.CreateSequentialTaskScheduler(101, i => sum += i);

            scheduler.RunSynchronously();
            Assert.AreEqual(sum, 5050);
        }
Пример #18
0
        protected override IScheduleTrigger ShowEditTriggerDialog()
        {
            var dailyTrigger = new DailyTrigger {
                StartBoundary = new DateTime(2013, 04, 01, 02, 21, 25)
            };

            return(SchedulerFactory.CreateTrigger(TaskState.Disabled, new Dev2Trigger(null, dailyTrigger)));
        }
Пример #19
0
 public IntervalChannelBuilder(ChannelBuilder <TChannel> builder, FiberFactory fiberFactory,
                               SchedulerFactory schedulerFactory, TimeSpan interval)
 {
     _builder          = builder;
     _interval         = interval;
     _schedulerFactory = schedulerFactory;
     _fiberFactory     = fiberFactory;
 }
Пример #20
0
        public async Task <bool> StopAll()
        {
            var scheduer = await SchedulerFactory.GetScheduler();

            await scheduer.PauseAll();

            return(true);
        }
Пример #21
0
        static AnonymousActor()
        {
            _fiberFactory = executor => new PoolFiber(executor);

            _schedulerFactory = () => new TimerScheduler(new PoolFiber());

            CreateAnonymousActorFactory();
        }
Пример #22
0
		public static void SetAnonymousActorSchedulerFactory(SchedulerFactory schedulerFactory)
		{
			Guard.AgainstNull(schedulerFactory, "schedulerFactory");

			_schedulerFactory = schedulerFactory;

			CreateAnonymousActorFactory();
		}
Пример #23
0
		static AnonymousActor()
		{
			_fiberFactory = executor => new PoolFiber(executor);

			_schedulerFactory = () => new TimerScheduler(new PoolFiber());

			CreateAnonymousActorFactory();
		}
Пример #24
0
        public T UseTimerScheduler()
        {
            TimerScheduler scheduler = null;

            _schedulerFactory = () => { return(scheduler ?? (scheduler = new TimerScheduler(new PoolFiber()))); };
            _owned            = true;

            return(this as T);
        }
Пример #25
0
        /// <summary>
        /// 新版autofac注入
        /// </summary>
        /// <param name="builder"></param>
        public void ConfigureContainer(ContainerBuilder builder)
        {
            builder.RegisterModule <AutofacModule>();
            // 注册redis实例
            builder.RegisterInstance(new RedisClient(Configuration)).SingleInstance().PropertiesAutowired();
            builder.RegisterInstance(new LionMemoryCache("Cache")).SingleInstance().PropertiesAutowired();
            var scheduler = new SchedulerFactory(Configuration).GetScheduler().Result;

            builder.RegisterInstance(scheduler).As <IScheduler>().PropertiesAutowired().SingleInstance();

            #region 注册dbcontext上下文 使用属性注入 -- 但是使用上面的方式直接add好像也可以

            //builder.Register(context =>
            //{
            //    //var config = context.Resolve<IConfiguration>();
            //    var opt = new DbContextOptionsBuilder<LionDbContext>();
            //    opt.UseSqlServer(Configuration.GetConnectionString("SqlServerConnection"));
            //    opt.ReplaceService<IMigrationsModelDiffer, MigrationsModelDifferWithoutForeignKey>();
            //    opt.EnableSensitiveDataLogging();
            //    opt.UseLoggerFactory(DbConsoleLoggerFactory);

            //    return new LionDbContext(opt.Options);
            //}).InstancePerLifetimeScope().PropertiesAutowired();

            #endregion

            // 配置AOP代理
            // 属性注入得把方法加上 virtual  不然没效果
            builder.RegisterDynamicProxy(config =>
            {
                ////全局使用AOP  这里由于不是使用的接口的方式,需要在要使用AOP的方法上加 virtual 关键字
                //config.Interceptors.AddTyped<LogInterceptorAttribute>();
                //config.Interceptors.AddServiced<LogInterceptorAttribute>();
                //// 带有Service后缀当前方法会被拦截
                //config.Interceptors.AddTyped<LogInterceptorAttribute>(method => method.Name.EndsWith("Service"));
                //// 使用 通配符 的特定全局拦截器
                //config.Interceptors.AddTyped<LogInterceptorAttribute>(Predicates.ForService("*Service"));

                ////Demo.Data命名空间下的Service不会被代理
                //config.NonAspectPredicates.AddNamespace("Demo.Data");

                ////最后一级为Data的命名空间下的Service不会被代理
                //config.NonAspectPredicates.AddNamespace("*.Data");

                ////ICustomService接口不会被代理
                //config.NonAspectPredicates.AddService("ICustomService");

                ////后缀为Service的接口和类不会被代理
                //config.NonAspectPredicates.AddService("*Service");

                ////命名为FindUser的方法不会被代理
                //config.NonAspectPredicates.AddMethod("FindUser");

                ////后缀为User的方法不会被代理
                //config.NonAspectPredicates.AddMethod("*User");
            });
        }
        public ActionResult GetScheduleStatus()
        {
            ActionResult ActionResult = new ActionResult
            {
                Data = SchedulerFactory.GetScheduleStatus()
            };

            return(ActionResult);
        }
Пример #27
0
        public void Start()
        {
            _logger.Log("Starting DmvWaitTime Service");

            foreach (var service in SchedulerFactory.GetSchedulers(_container))
            {
                service.ScheduleJob();
            }
        }
Пример #28
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var result = new ExecuteMessage {
                HasError = false
            };
            StringBuilder tmp;

            values.TryGetValue("Resource", out tmp);
            var serializer = new Dev2JsonSerializer();

            try
            {
                if (tmp != null)
                {
                    var res = serializer.Deserialize <IScheduledResource>(tmp);
                    Dev2Logger.Log.Info("Save Scheduled Resource. Scheduled Resource:" + res);
                    using (var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                    {
                        StringBuilder userName;
                        StringBuilder password;

                        values.TryGetValue("UserName", out userName);
                        values.TryGetValue("Password", out password);
                        if (userName == null || password == null)
                        {
                            result.Message.Append("No UserName or password provided");
                            result.HasError = true;
                        }
                        else
                        {
                            StringBuilder previousTask;
                            values.TryGetValue("PreviousResource", out previousTask);

                            model.Save(res, userName.ToString(), password.ToString());
                            if (previousTask != null && !String.IsNullOrEmpty(previousTask.ToString()) && (previousTask.ToString() != res.Name))
                            {
                                model.DeleteSchedule(new ScheduledResource(previousTask.ToString(), SchedulerStatus.Disabled, DateTime.MaxValue, null, null));
                            }
                        }
                    }
                }
                else
                {
                    result.Message.Append("No Resource Selected");
                    result.HasError = true;
                }
            }
            catch (Exception e)
            {
                Dev2Logger.Log.Error(e);
                result.Message.Append(string.Format("Error while saving: {0}", e.Message.Remove(e.Message.IndexOf('.'))));
                result.HasError = true;
            }
            return(serializer.SerializeToBuilder(result));
        }
        internal static List <IUIData> GetData(int PortalID, UserInfo userinfo)
        {
            Dictionary <string, IUIData> Setting = new Dictionary <string, IUIData>
            {
                { "ScheduleStatus", new UIData {
                      Name = "ScheduleStatus", Options = SchedulerFactory.GetScheduleStatus()
                  } }
            };

            return(Setting.Values.ToList());
        }
Пример #30
0
        public CommandTemplate ModifyCommandTemplate(long commandTemplateId, string name, string description, string code, string executableFile, string preparationScript)
        {
            CommandTemplate commandTemplate = _unitOfWork.CommandTemplateRepository.GetById(commandTemplateId);

            if (commandTemplate is null)
            {
                throw new RequestedObjectDoesNotExistException("The specified command template is not defined in HEAppE!");
            }

            if (!commandTemplate.IsEnabled)
            {
                throw new InputValidationException("The specified command template is deleted.");
            }

            if (commandTemplate.IsGeneric)
            {
                throw new InputValidationException("The specified command template is generic.");
            }

            if (executableFile is null)
            {
                throw new InputValidationException("The specified command template must have specified executable file!");
            }

            Cluster cluster = commandTemplate.ClusterNodeType.Cluster;
            var     commandTemplateParameters = SchedulerFactory.GetInstance(cluster.SchedulerType)
                                                .CreateScheduler(cluster)
                                                .GetParametersFromGenericUserScript(cluster, executableFile)
                                                .ToList();

            var templateParameters = new List <CommandTemplateParameter>();

            foreach (string parameter in commandTemplateParameters)
            {
                templateParameters.Add(new CommandTemplateParameter()
                {
                    Identifier  = parameter,
                    Description = parameter,
                    Query       = string.Empty
                });
            }

            commandTemplate.Name              = name;
            commandTemplate.Description       = description;
            commandTemplate.Code              = code;
            commandTemplate.PreparationScript = preparationScript;
            commandTemplate.TemplateParameters.ForEach(cmdParameters => _unitOfWork.CommandTemplateParameterRepository.Delete(cmdParameters));
            commandTemplate.TemplateParameters.AddRange(templateParameters);
            commandTemplate.ExecutableFile    = executableFile;
            commandTemplate.CommandParameters = string.Join(' ', commandTemplateParameters.Select(x => $"%%{"{"}{x}{"}"}"));

            _unitOfWork.Save();
            return(commandTemplate);
        }
Пример #31
0
        public void SetUp()
        {
            _event = null;
            _eventsRepositoryMock = new Mock <IEventRepository>();
            _eventsRepositoryMock.Setup(h => h.Save(It.IsAny <Event>()))
            .Callback <Event>(r => _event = r);

            var factory = new SchedulerFactory();

            _scheduler = factory.CreateInstance(WeeklySchedulerTypeName);
        }
        internal static List <IUIData> GetData(int PortalID, UserInfo userinfo)
        {
            Dictionary <string, IUIData> Setting = new Dictionary <string, IUIData>
            {
                { "FriendlyName", new UIData {
                      Name = "FriendlyName", Value = ""
                  } },
                { "ObjectDependencies", new UIData {
                      Name = "ObjectDependencies", Value = ""
                  } },
                { "ScheduleStatus", new UIData {
                      Name = "ScheduleStatus", Options = SchedulerFactory.GetScheduleStatus()
                  } },
                { "GetScheduleItems", new UIData {
                      Name = "GetScheduleItems", Options = SchedulerManager.GetScheduleItems()
                  } },
                { "FrequencyPeriod", new UIData {
                      Name = "FrequencyPeriod", Options = SchedulerManager.TimePeriod(), OptionsText = "Text", OptionsValue = "Value", Value = "s"
                  } },
                { "RunTimeLapsePeriod", new UIData {
                      Name = "RunTimeLapsePeriod", Options = SchedulerManager.TimePeriod(), OptionsText = "Text", OptionsValue = "Value", Value = "s"
                  } },
                { "CatchUpTasks", new UIData {
                      Name = "CatchUpTasks", Options = SchedulerManager.CatchUpTask(), OptionsText = "Text", OptionsValue = "Value", Value = "false"
                  } },
                { "RunOnEvent", new UIData {
                      Name = "RunOnEvent", Options = SchedulerManager.RunOnEvent(), OptionsText = "Text", OptionsValue = "Value", Value = "0"
                  } },
                { "RetainScheduleHistory", new UIData {
                      Name = "RetainScheduleHistory", Options = SchedulerManager.RetainScheduleHistory(), OptionsText = "Text", OptionsValue = "Value", Value = "0"
                  } },
                { "EnabledScheduling", new UIData {
                      Name = "EnabledScheduling", Value = "false"
                  } },
                { "ScheduleStartDate", new UIData {
                      Name = "ScheduleStartDate", Value = ""
                  } },
                { "RetryTimeLapse", new UIData {
                      Name = "RetryTimeLapse", Value = ""
                  } },
                { "Server", new UIData {
                      Name = "Server", Value = ""
                  } },
                { "Frequency", new UIData {
                      Name = "Frequency", Value = ""
                  } },
                { "ClassNameAssembly", new UIData {
                      Name = "ClassNameAssembly", Value = ""
                  } }
            };

            return(Setting.Values.ToList());
        }