internal TaskSchedulerViewModel(BitnamiRedmineStack stack, ITaskService taskService, IDialogService dialogService)
        {
            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            if (taskService == null)
            {
                throw new ArgumentNullException(nameof(taskService));
            }

            if (dialogService == null)
            {
                throw new ArgumentNullException(nameof(dialogService));
            }

            this._TaskService   = taskService;
            this._DialogService = dialogService;

            this.DeleteCommand  = new RelayCommand <TaskSchedulerItem>(this.DeleteExecute, this.CanDeleteExecute);
            this.RefreshCommand = new RelayCommand(this.RefresExecute, this.CanRefreshExecute);
            this.RunCommand     = new RelayCommand <TaskSchedulerItem>(this.RunExecute, this.CanRunExecute);
            this.StopCommand    = new RelayCommand <TaskSchedulerItem>(this.StopExecute, this.CanStopExecute);
        }
Exemple #2
0
        public BackupModel(
            IApplicationSettingService applicationSettingService,
            IBitnamiRedmineService bitnamiRedmineService,
            IBackupService backupService,
            IDispatcherService dispatcherService,
            IDialogService dialogService,
            ILogService logService,
            BitnamiRedmineStack stack)
            : base(applicationSettingService, bitnamiRedmineService, backupService, dispatcherService, dialogService, logService, stack)
        {
            // Apply Setting
            RedmineSetting redmineSetting;

            this.GetApplicationSetting(out redmineSetting);
            this.Directory     = redmineSetting.Backup.BaseDirectory;
            this.DirectoryName = redmineSetting.Backup.DirectoryName;
            this.Database      = redmineSetting.Backup.Database;
            this.Files         = redmineSetting.Backup.Files;
            this.Plugins       = redmineSetting.Backup.Plugins;
            this.Themes        = redmineSetting.Backup.Themes;

            this.PropertyChanged += (sender, args) =>
            {
                switch (args.PropertyName)
                {
                case "Directory":
                    var path = Path.Combine(this.Directory, this.DirectoryName);
                    this.OutputDirectory = Utility.GetSanitizedDirectoryPath(stack, path);
                    break;
                }
            };

            this.UpdateDiskSpace();
        }
Exemple #3
0
        public RestoreModel(
            IApplicationSettingService applicationSettingService,
            IBitnamiRedmineService bitnamiRedmineService,
            IBackupService backupService,
            IDispatcherService dispatcherService,
            IDialogService dialogService,
            ILogService logService,
            BitnamiRedmineStack stack)
            : base(applicationSettingService, bitnamiRedmineService, backupService, dispatcherService, dialogService, logService, stack)
        {
            this.PropertyChanged += (sender, args) =>
            {
                switch (args.PropertyName)
                {
                case "Directory":
                    this.UpdateState();
                    break;
                }
            };

            RedmineSetting redmineSetting;

            this.GetApplicationSetting(out redmineSetting);

            this.BackupHistories = new CollectionViewSource
            {
                Source = this._ApplicationSettingService.BackupHistories
            };

            this._ApplicationSettingService.BackupHistories.CollectionChanged +=
                (sender, args) => this.BackupHistories.View.Refresh();

            var version = this.Stack.DisplayVersion.ToVersion();

            this.BackupHistories.View.Filter = x =>
            {
                var setting  = (BackupHistorySetting)x;
                var compared = setting.DisplayVersion.ToVersion() <= version;
                return(compared);
            };
            this.BackupHistories.View.SortDescriptions.Add(new SortDescription("DateTime", ListSortDirection.Descending));

            this.DeleteHistoryCommand = new RelayCommand <BackupHistorySetting>(this.DeleteHistoryExecute);
        }
Exemple #4
0
        public BackupEngine(
            IBitnamiRedmineService bitnamiRedmineService,
            IBackupService backupService,
            IDispatcherService dispatcherService,
            ILogService logService,
            BackupConfiguration configuration,
            BitnamiRedmineStack stack,
            string outputPath)
        {
            if (bitnamiRedmineService == null)
            {
                throw new ArgumentNullException(nameof(bitnamiRedmineService));
            }

            if (backupService == null)
            {
                throw new ArgumentNullException(nameof(backupService));
            }

            if (logService == null)
            {
                throw new ArgumentNullException(nameof(logService));
            }

            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            this._BitnamiRedmineService = bitnamiRedmineService;
            this._BackupService         = backupService;
            this._DispatcherService     = dispatcherService;
            this._LogService            = logService;
            this._Configuration         = configuration;
            this._Stack      = stack;
            this._OutputPath = outputPath;
        }
Exemple #5
0
        public RestoreEngine(
            IBitnamiRedmineService bitnamiRedmineService,
            IBackupService backupService,
            IDispatcherService dispatcherService,
            ILogService logService,
            BackupConfiguration configuration,
            BitnamiRedmineStack stack,
            string inputDirectory)
        {
            if (bitnamiRedmineService == null)
            {
                throw new ArgumentNullException(nameof(bitnamiRedmineService));
            }

            if (backupService == null)
            {
                throw new ArgumentNullException(nameof(backupService));
            }

            if (logService == null)
            {
                throw new ArgumentNullException(nameof(logService));
            }

            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            this._BitnamiRedmineService = bitnamiRedmineService;
            this._BackupService         = backupService;
            this._DispatcherService     = dispatcherService;
            this._LogService            = logService;
            this._Configuration         = configuration;
            this._Stack          = stack;
            this._InputDirectory = inputDirectory;
        }
Exemple #6
0
        public static string GetSanitizedDirectoryPath(BitnamiRedmineStack stack, string directory)
        {
            var keywords = new[]
            {
                "%VERSION%",
                "%LONGDATE%",
                "%SHORTDATE%",
            };

            var name     = directory ?? "";
            var datetime = DateTime.Now;

            foreach (var keyword in keywords)
            {
                do
                {
                    if (name.IndexOf(keyword, StringComparison.InvariantCulture) == -1)
                    {
                        break;
                    }

                    switch (keyword)
                    {
                    case "%VERSION%":
                        name = name.Replace(keyword, stack.DisplayVersion);
                        break;

                    case "%LONGDATE%":
                        name = name.Replace(keyword, datetime.ToString("yyyyMMdd hhmmss"));
                        break;

                    case "%SHORTDATE%":
                        name = name.Replace(keyword, datetime.ToString("yyyyMMdd"));
                        break;
                    }
                } while (true);
            }

            return(name);
        }
Exemple #7
0
        public Setting(IBitnamiRedmineService bitnamiRedmineService, IRedmineDatabaseConfigurationService databaseConfigurationService, ITaskService taskService, IDialogService dialogService, ILogService logService, BitnamiRedmineStack stack)
        {
            if (bitnamiRedmineService == null)
            {
                throw new ArgumentNullException(nameof(bitnamiRedmineService));
            }

            if (databaseConfigurationService == null)
            {
                throw new ArgumentNullException(nameof(databaseConfigurationService));
            }

            if (taskService == null)
            {
                throw new ArgumentNullException(nameof(taskService));
            }

            if (dialogService == null)
            {
                throw new ArgumentNullException(nameof(dialogService));
            }

            if (logService == null)
            {
                throw new ArgumentNullException(nameof(logService));
            }

            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            this._Stack         = stack;
            this._DialogService = dialogService;
            this._LogService    = logService;

            var configuration = new ServiceConfiguration
            {
                Apache     = true,
                MySql      = true,
                Redmine    = true,
                Subversion = true
            };

            var serviceStatuses = bitnamiRedmineService.GetServiceDisplayNames(stack, configuration);

            this._ServiceStatuses = new ObservableCollection <ServiceStatus>(serviceStatuses);

            this._DatabaseConfiguration    = databaseConfigurationService.GetDatabaseConfiguration(stack).FirstOrDefault();
            this._DatabaseConnectorService = new MySqlConnectorService(this._DatabaseConfiguration, logService);

            var projects = this._DatabaseConnectorService.GetProjects().ToList();

            projects.Insert(0, new ProjectItem(new ProjectObject {
                Id = 0, Name = "[‘S‘Ì]"
            }));
            this._Projects = new ObservableCollection <ProjectItem>(projects);

            this._SelectedProject         = this._Projects.First();
            this._SelectedEnumerationType = EnumerationTypes.First();

            this.UpdateSelectedEnumeration();
            this.SelectedTaskScheduler = new TaskSchedulerViewModel(stack, taskService, dialogService);
        }
Exemple #8
0
        protected BackupRestoreModel(
            IApplicationSettingService applicationSettingService,
            IBitnamiRedmineService bitnamiRedmineService,
            IBackupService backupService,
            IDispatcherService dispatcherService,
            IDialogService dialogService,
            ILogService logService,
            BitnamiRedmineStack stack)
        {
            if (applicationSettingService == null)
            {
                throw new ArgumentNullException(nameof(applicationSettingService));
            }

            if (bitnamiRedmineService == null)
            {
                throw new ArgumentNullException(nameof(bitnamiRedmineService));
            }

            if (backupService == null)
            {
                throw new ArgumentNullException(nameof(backupService));
            }

            if (dispatcherService == null)
            {
                throw new ArgumentNullException(nameof(dispatcherService));
            }

            if (dialogService == null)
            {
                throw new ArgumentNullException(nameof(dialogService));
            }

            if (logService == null)
            {
                throw new ArgumentNullException(nameof(logService));
            }

            if (stack == null)
            {
                throw new ArgumentNullException(nameof(stack));
            }

            this._ApplicationSettingService = applicationSettingService;
            this._BitnamiRedmineService     = bitnamiRedmineService;
            this._BackupService             = backupService;
            this._DispatcherService         = dispatcherService;
            this._DialogService             = dialogService;
            this._LogService = logService;
            this._Stack      = stack;

            this.Database = true;
            this.Files    = true;
            this.Plugins  = true;
            this.Themes   = true;

            this.Command = new RelayCommand(this.Execute, this.CanExecute);
            this.SelectDirectoryCommand = new RelayCommand(this.ExecuteSelectDirectory, this.CanExecuteSelectDirectory);

            //var bitNamiRedmineStackConfiguration = ConfigurationService.Instance.GetBitnamiRedmineStackConfiguration(stack.DisplayVersion);
            //bitNamiRedmineStackConfiguration.
        }