Beispiel #1
0
        public IList <Models.BackupPlanFile> GetAllPendingByBackup(Models.Backup backup)
        {
            string bfModelName                  = typeof(Models.BackupedFile).Name;
            string bfFilePropertyName           = this.GetPropertyName((Models.BackupedFile x) => x.File);
            string bfBackupIdPropertyName       = this.GetPropertyName((Models.BackupedFile x) => x.Backup);
            string bfTransferStatusPropertyName = this.GetPropertyName((Models.BackupedFile x) => x.TransferStatus);

            // REFERENCE: https://docs.jboss.org/hibernate/orm/3.5/reference/en-US/html/queryhql.html#queryhql-expressions
            string queryString = string.Format(
                "SELECT bpf"
                + " FROM {0} AS bf"
                + " INNER JOIN bf.{1} AS bpf"
                + " WHERE"
                + "   bf.{2} = :backupId"
                + "   AND bf.{3} != :transferStatusCompleted"
                , bfModelName
                , bfFilePropertyName
                , bfBackupIdPropertyName
                , bfTransferStatusPropertyName
                );

            IQuery query = Session.CreateQuery(queryString)
                           .SetParameter("backupId", backup.Id)
                           .SetParameter("transferStatusCompleted", TransferStatus.COMPLETED)
            ;

            return(query.List <Models.BackupPlanFile>());
        }
Beispiel #2
0
        public BackupProgress StartBackup(Models.Backup backup)
        {
            if (CoreBaseSettings.Standalone)
            {
                TenantExtra.DemandControlPanelPermission();
            }

            BackupHandler.StartBackup(backup.StorageType, backup.StorageParams ?? new Dictionary <string, string>(), backup.BackupMail);
            return(BackupHandler.GetBackupProgress());
        }
Beispiel #3
0
        public IList <Models.BackupedFile> GetByBackupAndStatus(Models.Backup backup, params TransferStatus[] statuses)
        {
            Assert.IsNotNull(backup);
            Assert.IsNotNull(statuses);
            ICriteria crit = Session.CreateCriteria(PersistentType);
            string    backupPropertyName         = this.GetPropertyName((Models.BackupedFile x) => x.Backup);
            string    transferStatusPropertyName = this.GetPropertyName((Models.BackupedFile x) => x.TransferStatus);

            crit.Add(Restrictions.Eq(backupPropertyName, backup));
            crit.Add(Restrictions.In(transferStatusPropertyName, statuses));
            return(crit.List <Models.BackupedFile>());
        }
Beispiel #4
0
        private BackupProgress StartBackup(Models.Backup backup)
        {
            if (CoreBaseSettings.Standalone)
            {
                TenantExtra.DemandControlPanelPermission();
            }
            var storageType   = backup.StorageType == null ? BackupStorageType.Documents : (BackupStorageType)Int32.Parse(backup.StorageType);
            var storageParams = backup.StorageParams == null ? new Dictionary <string, string>() : backup.StorageParams.ToDictionary(r => r.Key.ToString(), r => r.Value.ToString());

            BackupHandler.StartBackup(storageType, storageParams, backup.BackupMail);
            return(BackupHandler.GetBackupProgress());
        }
Beispiel #5
0
        public Models.BackupedFile GetByBackupAndPath(Models.Backup backup, string path, bool ignoreCase = false)
        {
            Assert.IsNotNull(backup);
            Assert.That(path, Is.Not.Null.Or.Empty);
            ICriteria crit = Session.CreateCriteria(PersistentType);
            string    backupPropertyName   = this.GetPropertyName((Models.BackupedFile x) => x.Backup);
            string    filePropertyName     = this.GetPropertyName((Models.BackupedFile x) => x.File);
            string    filePathPropertyName = this.GetPropertyName((Models.BackupPlanFile x) => x.Path);

            crit.CreateAlias(filePropertyName, "f");
            crit.Add(Restrictions.Eq(backupPropertyName, backup));
            SimpleExpression expr = Restrictions.Eq("f." + filePathPropertyName, path);

            if (ignoreCase)
            {
                expr = expr.IgnoreCase();
            }
            crit.Add(expr);
            return(crit.UniqueResult <Models.BackupedFile>());
        }
 public BackupController(string source, string destination)
 {
     this.Backup = new Walfrido.Backup.Models.Backup(source, destination);
 }
Beispiel #7
0
 public BackupProgress StartBackupFromForm([FromForm] Models.Backup backup)
 {
     return(StartBackup(backup));
 }
Beispiel #8
0
 public BackupProgress StartBackupFromBody([FromBody] Models.Backup backup)
 {
     return(StartBackup(backup));
 }