/// <summary> /// Timer_Tick event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GapCountTimer_Tick(object sender, EventArgs e) { //If there are still programs to start on the list then start the next one on the list if (CurrentProgramStartingOrder <= ProgramsToStartList.Count()) { StartNextProgram(); } //else stop the starting procedure else { IsStartupDone = true; GapCountTimer.Stop(); } }
/// <summary> /// This method is starting next program in the list, calculating PercentOfStartedPrograms and incrementing CurrentProgramStartingOrder /// </summary> private void StartNextProgram() { //Start program ProgramToStart program = ProgramsToStartList.Where(p => p.StartingOrder == CurrentProgramStartingOrder).FirstOrDefault(); string path = ProgramsToStartList.Where(p => p.StartingOrder == CurrentProgramStartingOrder).Select(x => x.Path).FirstOrDefault().ToString(); try { StartProgram(path); } catch (Exception ex) { HasErrors = true; ErrorLog log = new ErrorLog(DateTime.Now, program.ProgramName, program.Path, ex.ToString()); ErrorsList.Add(log); } //Calculate percentage of started programs PercentOfStartedPrograms = ((float)CurrentProgramStartingOrder / ProgramsToStartList.Count()) * 100; //Increment CurrentProgramStartingOrder CurrentProgramStartingOrder++; }