Exemple #1
0
        public void StartBackup(BackupStorageType storageType, Dictionary <string, string> storageParams, bool backupMail)
        {
            DemandPermissionsBackup();
            DemandSize();

            var backupRequest = new StartBackupRequest
            {
                TenantId      = GetCurrentTenantId(),
                UserId        = SecurityContext.CurrentAccount.ID,
                BackupMail    = backupMail,
                StorageType   = storageType,
                StorageParams = storageParams
            };

            switch (storageType)
            {
            case BackupStorageType.ThridpartyDocuments:
            case BackupStorageType.Documents:
                backupRequest.StorageBasePath = storageParams["folderId"];
                break;

            case BackupStorageType.Local:
                if (!CoreBaseSettings.Standalone)
                {
                    throw new Exception("Access denied");
                }
                backupRequest.StorageBasePath = storageParams["filePath"];
                break;
            }

            MessageService.Send(MessageAction.StartBackupSetting);

            BackupService.StartBackup(backupRequest);
        }
Exemple #2
0
        public void StartBackup(StartBackupRequest request)
        {
            var progress = BackupWorker.StartBackup(request);

            if (!string.IsNullOrEmpty(progress.Error))
            {
                throw new FaultException();
            }
        }
Exemple #3
0
        public BackupProgress StartBackup(StartBackupRequest request)
        {
            var progress = BackupWorker.StartBackup(request.TenantId, request.UserId, request.BackupMail, request.StorageType, request.StorageBasePath);

            if (!string.IsNullOrEmpty(progress.Error))
            {
                throw new FaultException(progress.Error);
            }
            return(progress);
        }
 public static BackupProgress StartBackup(StartBackupRequest request)
 {
     lock (tasks.SynchRoot)
     {
         var item = tasks.GetItems().OfType <BackupProgressItem>().FirstOrDefault(t => t.TenantId == request.TenantId);
         if (item != null && item.IsCompleted)
         {
             tasks.Remove(item);
             item = null;
         }
         if (item == null)
         {
             item = new BackupProgressItem(false, request.TenantId, request.UserId, request.StorageType, request.StorageBasePath)
             {
                 BackupMail = request.BackupMail, StorageParams = request.StorageParams
             };
             tasks.Add(item);
         }
         return(ToBackupProgress(item));
     }
 }
Exemple #5
0
        public BackupProgress StartBackup(StartBackupRequest request)
        {
            lock (SynchRoot)
            {
                var item = ProgressQueue.GetTasks <BackupProgressItem>().FirstOrDefault(t => t.TenantId == request.TenantId);
                if (item != null && item.IsCompleted)
                {
                    ProgressQueue.RemoveTask(item.Id);
                    item = null;
                }
                if (item == null)
                {
                    item = FactoryProgressItem.CreateBackupProgressItem(request, false, TempFolder, Limit, CurrentRegion, ConfigPaths);
                    ProgressQueue.QueueTask(item);
                }

                item.PublishChanges();

                return(ToBackupProgress(item));
            }
        }
        public BackupProgress StartBackup(BackupStorageType storageType, StorageParams storageParams, bool backupMail)
        {
            DemandPermissionsBackup();
            DemandSize();

            var backupRequest = new StartBackupRequest
            {
                TenantId    = GetCurrentTenantId(),
                UserId      = SecurityContext.CurrentAccount.ID,
                BackupMail  = backupMail,
                StorageType = storageType
            };

            switch (storageType)
            {
            case BackupStorageType.ThridpartyDocuments:
            case BackupStorageType.Documents:
                backupRequest.StorageBasePath = storageParams.FolderId;
                break;

            case BackupStorageType.CustomCloud:
                backupRequest.StorageBasePath = storageParams.FilePath;
                ValidateS3Settings(storageParams.AccessKeyId, storageParams.SecretAccessKey, storageParams.Bucket, storageParams.Region);
                CoreContext.Configuration.SaveSection(new AmazonS3Settings
                {
                    AccessKeyId     = storageParams.AccessKeyId,
                    SecretAccessKey = storageParams.SecretAccessKey,
                    Bucket          = storageParams.Bucket,
                    Region          = storageParams.Region
                });
                break;
            }

            MessageService.Send(HttpContext.Current.Request, MessageAction.StartBackupSetting);

            using (var service = new BackupServiceClient())
            {
                return(service.StartBackup(backupRequest));
            }
        }
Exemple #7
0
        public BackupProgress StartBackup(StartBackupRequest request)
        {
            lock (ProgressQueue.SynchRoot)
            {
                var item = ProgressQueue.GetItems().OfType <BackupProgressItem>().FirstOrDefault(t => t.TenantId == request.TenantId);
                if (item != null && item.IsCompleted)
                {
                    ProgressQueue.Remove(item);
                    item = null;
                }
                if (item == null)
                {
                    item = FactoryProgressItem.CreateBackupProgressItem(request, false, TempFolder, Limit, CurrentRegion, ConfigPaths);
                    ProgressQueue.Add(item);
                }

                var progress = ToBackupProgress(item);

                PublishProgress(progress);

                return(progress);
            }
        }
Exemple #8
0
        public BackupProgress StartBackup(BackupStorageType storageType, Dictionary <string, string> storageParams, bool backupMail)
        {
            DemandPermissionsBackup();

            var backupRequest = new StartBackupRequest
            {
                TenantId      = GetCurrentTenantId(),
                UserId        = SecurityContext.CurrentAccount.ID,
                BackupMail    = backupMail,
                StorageType   = storageType,
                StorageParams = storageParams
            };

            switch (storageType)
            {
            case BackupStorageType.ThridpartyDocuments:
            case BackupStorageType.Documents:
                backupRequest.StorageBasePath = storageParams["folderId"];
                break;

            case BackupStorageType.Local:
                if (!CoreContext.Configuration.Standalone)
                {
                    throw new Exception("Access denied");
                }
                backupRequest.StorageBasePath = storageParams["filePath"];
                break;
            }

            MessageService.Send(HttpContext.Current.Request, MessageAction.StartBackupSetting);

            using (var service = new BackupServiceClient())
            {
                return(service.StartBackup(backupRequest));
            }
        }