Пример #1
0
 private void CheckFlags(FLAG _stepDataIdentifier1, Packet packet, FLAG _stepDataIdentifier2 = FLAG.CLOSE, int WaitingTime = 5000)
 {
     try
     {
         stepDataIdentifier1 = _stepDataIdentifier1;
         stepDataIdentifier2 = _stepDataIdentifier2;
         receivePacket.ID    = FLAG.Null;
         ChangeProgressData(stepDataIdentifier1.ToString());
         try
         {
             if (connection != null)
             {
                 SendMessage(packet, connection);
             }
         }
         catch
         {
             connection = null;
         }
         Thread.Sleep(1000);
         while (receivePacket.ID != stepDataIdentifier1 && receivePacket.ID != stepDataIdentifier2 && !stopped)
         {
             if (stopped || failed)
             {
                 return;
             }
             try
             {
                 if (connection != null)
                 {
                     SendMessage(packet, connection);
                 }
             }
             catch
             {
                 connection = null;
             }
             if ((receivePacket.ID == FLAG.SYN_FLAG || receivePacket.ID == FLAG.SYN_FLAG_WINPE) && (receivePacket.ID != stepDataIdentifier1 || receivePacket.ID != stepDataIdentifier2))
             {
                 cloneFaildMessage = "CLIENT NEED RESTART";
                 restart           = true;
                 return;
             }
             Thread.Sleep(WaitingTime);
         }
         if (!failed && !stopped)
         {
             progressComputerData = new ProgressComputerData("Images/Done.ico", computer.Name, receivePacket.ID.ToString(), executedTaskData.GetFileName(), "", computer.MacAddress);
         }
         SaveProgress();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
Пример #2
0
 public void Start()
 {
     FileHandler.Save <ExecutedTaskData>(executedTaskData, executedTaskData.GetFileName());
     if (executedTaskData.taskData.Cloning)
     {
         string sessionName = executedTaskData.Started + "_" + executedTaskData.taskData.Name;
         if (executedTaskData.taskData.BaseImageSourcePath != "")
         {
             CreateSession(sessionName, executedTaskData.taskData.BaseImageData.SourcePath);
         }
         if (executedTaskData.taskData.DriveEImageSourcePath != "")
         {
             CreateSession(sessionName + "_DriveE", executedTaskData.taskData.DriveEImageData.SourcePath);
         }
     }
     RefreshList();
     for (int i = 0; i < executedTaskData.taskData.TargetComputers.Count; i++)
     {
         var computer = new ComputerInTaskHandler(executedTaskData, clients, i, ipAddresses, semaphoreFotSaveFile, listViewAll, listViewSelected);
         computers.Add(computer);
         var computerThread = new Thread(computer.Start);
         computersThreads.Add(computerThread);
         computerThread.Start();
     }
     AddComputersToListViewAll();
     Application.Current.Dispatcher.Invoke(() =>
     {
         listViewTaskDetailsProgress.Items.Add(executedTaskData);
         listViewTaskDetailsProgress.SelectedItems.Clear();
         listViewTaskDetailsProgress.SelectedItems.Add(listViewTaskDetailsProgress.Items[listViewTaskDetailsProgress.Items.Count - 1]);
     });
     foreach (ComputerInTaskHandler computer in computers)
     {
         computer.semaphoreForTask.WaitOne();
         if (!computer.stopped && !computer.failed)
         {
             executedTaskData.Done = (Convert.ToInt16(executedTaskData.Done) + 1).ToString();
         }
         else
         {
             if (computer.failed)
             {
                 imagePath = "Images/Failed.ico";
             }
         }
     }
     Finish(imagePath);
 }
Пример #3
0
 private void SaveProgress(ProgressComputerData progress)
 {
     if (progress.Step != "Null")
     {
         semaphoreForSaveFile.WaitOne();
         executedTaskData.progressComputerData.Add(progress);
         FileHandler.Save(executedTaskData, executedTaskData.GetFileName());
         semaphoreForSaveFile.Release();
     }
 }
Пример #4
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     if (executedTaskData != null)
     {
         executedTaskData = FileHandler.Load <ExecutedTaskData>(executedTaskData.GetFileName());
         foreach (ProgressComputerData progressComputerData in executedTaskData.progressComputerData)
         {
             listViewProgressDetails.Items.Add(progressComputerData);
         }
     }
 }
Пример #5
0
 private void MenuItemDetailsDeleteAll_Click(object sender, RoutedEventArgs e)
 {
     if (listViewTasksDetails.SelectedItems.Count != 0)
     {
         for (int i = listViewTasksDetails.Items.Count - 1; i >= 0; i--)
         {
             ExecutedTaskData taskDetails = (ExecutedTaskData)listViewTasksDetails.Items[i];
             if (taskDetails.Status != "Images/Progress.ico")
             {
                 string path = taskDetails.GetFileName();
                 if (File.Exists(path))
                 {
                     File.Delete(path);
                     listViewTaskDetailsHandler.Refresh();
                 }
             }
             else
             {
                 bool exist = false;
                 for (int j = ExecutedTasksHandlers.Count - 1; j >= 0; j--)
                 {
                     ExecutedTaskHandler item = ExecutedTasksHandlers[j];
                     if (item.executedTaskData.Name == taskDetails.Name && item.executedTaskData.Started == taskDetails.Started)
                     {
                         exist = true;
                         break;
                     }
                 }
                 if (!exist)
                 {
                     string path = taskDetails.GetFileName();
                     if (File.Exists(path))
                     {
                         File.Delete(path);
                         listViewTaskDetailsHandler.Refresh();
                     }
                 }
             }
         }
     }
 }