/// <summary>
        /// Реализовал здесь, чтобы не тянуть зависимость от окон во ViewModel
        /// </summary>
        private void OkButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var authViewModel   = DataContext as AuthWindowViewModel;
                var codebaseService = CommonContainer.Resolve <ICodebaseService>(authViewModel.CodebaseUrl);
                codebaseService.LogIn(authViewModel.Username, txtPassword.Password);

                AuthConfigHelper.LastCodebaseUrl = authViewModel.CodebaseUrl;
                AuthConfigHelper.LastUsername    = authViewModel.Username;

                if (authViewModel.IsPasswordSaving)
                {
                    AuthConfigHelper.SavedPassword = txtPassword.Password;
                }
                else
                {
                    AuthConfigHelper.DeletePassword();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, this.Title);
                return;
            }

            new MainWindow().Show();
            this.Close();
        }
Exemplo n.º 2
0
        /// <summary>
        ///  //Trigger触发后,job执行时调用本方法。true即否决,job后面不执行。
        /// </summary>
        /// <param name="trigger"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context)
        {
            var taskHelper = CommonContainer.Resolve <ITaskHelper>();

            taskHelper.UpdateRecentRunTime(trigger.JobKey.Name, TimeZoneInfo.ConvertTimeFromUtc(context.FireTimeUtc.Value.DateTime, TimeZoneInfo.Local));
            return(false);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 启用任务调度
 /// 启动调度时会把任务表中状态为“执行中”的任务加入到任务调度队列中
 /// </summary>
 public static void StartScheduler()
 {
     try
     {
         if (!_scheduler.IsStarted)
         {
             //添加全局监听
             _scheduler.ListenerManager.AddTriggerListener(new CustomTriggerListener(), GroupMatcher <TriggerKey> .AnyGroup());
             _scheduler.Start();
             var taskHelper = CommonContainer.Resolve <ITaskHelper>();
             //获取所有执行中的任务
             List <TaskModel> listTask = taskHelper.GetAllTaskList()?.ToList <TaskModel>();
             _currentTaskList = listTask;
             if (listTask != null && listTask.Count > 0)
             {
                 foreach (TaskModel taskUtil in listTask)
                 {
                     try
                     {
                         ScheduleJob(taskUtil, true);//防止修改cron表达式
                     }
                     catch (Exception e)
                     {
                         LogHelper.WriteLog($"任务“{taskUtil.TaskName}”启动失败!", e);
                     }
                 }
             }
             LogHelper.WriteLog("任务调度启动成功!");
         }
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog("任务调度启动失败!", ex);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static IList <TaskModel> CurrentTaskList()
        {
            if (_currentTaskList == null)
            {
                var taskHelper = CommonContainer.Resolve <ITaskHelper>();
                _currentTaskList = taskHelper.GetAllTaskList();
            }

            return(_currentTaskList);
        }
Exemplo n.º 5
0
 public void Execute(IJobExecutionContext context)
 {
     try
     {
         var testService = CommonContainer.Resolve <ITestService>();
         testService.TestPrintAsync();
         // 3. 开始执行相关任务
         LogHelper.WriteLog("当前系统时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
         Thread.Sleep(1000);
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(context.Trigger.Description, ex);
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// Job完成时调用
        /// </summary>
        /// <param name="trigger">触发器</param>
        /// <param name="context">上下文</param>
        /// <param name="triggerInstructionCode"></param>
        public void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode)
        {
            var taskHelper = CommonContainer.Resolve <ITaskHelper>();

            taskHelper.UpdateNextFireTime(trigger.JobKey.Name, TimeZoneInfo.ConvertTimeFromUtc(context.NextFireTimeUtc.Value.DateTime, TimeZoneInfo.Local));
        }