Пример #1
0
 private void tPlan_Tick(object sender, EventArgs e)
 {
     try
     {
         if (schedul.Started)
         {
             Scheduler.CSchedulTimes time;
             while ((time = schedul.GetNextDate()) != null)
             {
                 if (time.IsOnlyNow())
                 {
                     if (CFI != null)
                         if (CFI.Running)
                         {
                             LogWrite("Процесс по расписанию не был запущен из-за того, что предыдущий процесс не был завершён");
                             return;
                         }
                     if (lstUser.Items.Count > 0)
                     {
                         string[] strArgs = new string[lstUser.Items.Count];
                         lstUser.Items.CopyTo(strArgs, 0);
                         LogWrite("Операция начата по расписанию");
                         StartProcedure(strArgs);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         CFI = null;
         LogWrite(ex.Message);
     }
 }
Пример #2
0
 void _Go()
 {
     try
     {
         if (!btnGo.Enabled)
             return;
         if (schedul.Started)
         {
             tPlan.Stop();
             if (CFI != null)
                 CFI.Stop();
             CFI = null;
             Text = "Расписание отменено пользователем";
             LogWrite("Расписание отменено пользователем");
             schedul.Stop();
             ToWorkingMode(false);
             return;
         }
         if (CFI != null)
         {
             if (CFI.Running)
             {
                 if (CFI.Stop())
                 {
                     ToWorkingMode(false);
                     Text = "Отменено пользователем";
                     LogWrite("Процесс был остановлен пользователем");
                 }
                 CFI = null;
                 return;
             }
             CFI = null;
         }
         if (ExitGuar)
             return;
         if (!VerUpdatePath() || !VerToUpdatePath())
             return;
         if (!TestPaths())
             return;
         ListBox.ObjectCollection allObjs = lstUser.Items;
         if (allObjs.Count > 0)
         {
             ListBox.SelectedObjectCollection selObjs = lstUser.SelectedItems;
             System.Windows.Forms.DialogResult dres;
             if (selObjs.Count <= 0)
                 dres = System.Windows.Forms.DialogResult.No;
             else
                 if (selObjs.Count < allObjs.Count)
                     dres = MessageBox.Show(this, "Обновить только выделенные?", "Вопрос",
                     MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
                 else
                     dres = System.Windows.Forms.DialogResult.No;
             string[] strArgs;
             switch (dres)
             {
                 case System.Windows.Forms.DialogResult.Yes:
                     strArgs = new string[selObjs.Count];
                     selObjs.CopyTo(strArgs, 0);
                     break;
                 case System.Windows.Forms.DialogResult.No:
                     strArgs = new string[allObjs.Count];
                     allObjs.CopyTo(strArgs, 0);
                     break;
                 default: return;
             }
             LogWrite("Операция начата пользователем");
             StartProcedure(strArgs);
         }
     }
     catch (Exception ex)
     {
         CFI = null;
         LogWrite(ex.Message);
     }
 }
Пример #3
0
 void StartProcedure(string[] strArgs)
 {
     GetPathsToCopy(strArgs);
     Text = "Очистка старых файлов...";
     LogWrite(Text);
     ToWorkingMode(true);
     CFI = new CFileIndexer(txtFolderUpdate.Text, this);
     CFI.CopyFilesInOtherThread(strArgs);
 }