protected override void ActExecution()
        {
            string restartFolderPath = Path.Combine(MainSettings.LocalSqlSettings.SelfUpdatePath, MainSettings.Constants.MU_RESTART_FOLDER_NAME);

            FilesWorks.ClearDirectory(MainSettings.LocalSqlSettings.SelfUpdatePath);
            Directory.CreateDirectory(MainSettings.LocalSqlSettings.SelfUpdatePath);
            Directory.CreateDirectory(restartFolderPath);

            var resRestart = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer
                                                                 , MainSettings.LocalSqlSettings.SelfUpdateFtpUser
                                                                 , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword
                                                                 , Path.Combine(MainSettings.LocalSqlSettings.SelfUpdateFtpPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME)
                                                                 , restartFolderPath
                                                                 , "*");


            if (!resRestart.IsComplete)
            {
                throw new Exception($"Restart part: {resRestart.Message}");
            }

            var resAgent = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpUser
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpPath
                                                               , MainSettings.LocalSqlSettings.SelfUpdatePath
                                                               , "*");


            if (!resAgent.IsComplete)
            {
                throw new Exception($"Agent part: {resAgent.Message}");
            }
        }
        private void InstallBase()
        {
            Directory.CreateDirectory(_magicUpdaterPath);

            Program.MainForm?.LogInstallServiceString($"Копирование файла {MainSettings.Constants.SETTINGS_JSON_FILE_NAME}.");
            if (File.Exists(Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME)))
            {
                File.Delete(Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME));
            }
            File.Copy(MainSettings.JsonSettingsFileFullPath, Path.Combine(_magicUpdaterPath, MainSettings.Constants.SETTINGS_JSON_FILE_NAME));
            Program.MainForm?.LogInstallServiceString($"Копирование файла {MainSettings.Constants.SETTINGS_JSON_FILE_NAME} успешно завершено.");


            Thread.Sleep(1000);

            Program.MainForm?.LogInstallServiceString("Скачиваем новую версию приложения для перезапуска для агента");
            //Копируем новый MagicUpdater целиком!
            #region Копируем новый MagicUpdater целиком!
            Directory.CreateDirectory(_magicUpdaterPath);

            //Restart applivation
            var resReatartApp = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer
                                                                    , MainSettings.LocalSqlSettings.SelfUpdateFtpUser
                                                                    , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword
                                                                    , Path.Combine(MainSettings.LocalSqlSettings.SelfUpdateFtpPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME)
                                                                    , Path.Combine(_magicUpdaterPath, MainSettings.Constants.MU_RESTART_FOLDER_NAME)
                                                                    , "*");

            if (!resReatartApp.IsComplete)
            {
                throw new Exception(resReatartApp.Message);
            }
            else
            {
                Program.MainForm?.LogInstallServiceString($"Закачка нового {MainSettings.Constants.MAGIC_UPDATER_RESTART} - завешена");
                AddMessage($"Закачка нового {MainSettings.Constants.MAGIC_UPDATER_RESTART} - завешена");
            }

            //Agent
            Program.MainForm?.LogInstallServiceString("Скачиваем новую версию агента");
            var resAgent = FtpWorks.DownloadFilesFromFtpFolder(MainSettings.LocalSqlSettings.SelfUpdateFtpServer
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpUser
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpPassword
                                                               , MainSettings.LocalSqlSettings.SelfUpdateFtpPath
                                                               , _magicUpdaterPath
                                                               , "*");

            if (!resAgent.IsComplete)
            {
                throw new Exception(resAgent.Message);
            }
            else
            {
                Program.MainForm?.LogInstallServiceString($"Закачка нового {SERVICE_NAME} - завешена");
                AddMessage($"Закачка нового {SERVICE_NAME} - завешена");
            }
            #endregion Копируем новый MagicUpdater целиком!

            //Устанавливаем службу с режимом автозапуска
            //Запускаем службу
            Thread.Sleep(3000);

            try
            {
                Program.MainForm?.LogInstallServiceString($"Установка новой службы {SERVICE_NAME}");

                InstallService(_servicePath, SERVICE_NAME, SERVICE_DISPLAY_NAME);

                Program.MainForm?.LogInstallServiceString($"Новая служба {SERVICE_NAME} - установлена и запущена");
                AddMessage($"Новая служба {SERVICE_NAME} - установлена и запущена");

                //для отложенного запуска
                Thread.Sleep(3000);
                //Меняем режим запуска на отложенный
                Process changeProcess = Process.Start("sc.exe", $"config {SERVICE_NAME} start= delayed-auto");
                changeProcess.WaitForExit(10000);
                Program.MainForm?.LogInstallServiceString($"Для службы {SERVICE_NAME} - установлен отложенный запуск.");
                //sc.exe config MagicUpdater start= delayed-auto
            }
            catch (Exception ex)
            {
                throw;
            }
        }