Exemple #1
0
        /// <summary>
        /// Prepare paged backup file list model
        /// </summary>
        /// <param name="searchModel">Backup file search model</param>
        /// <returns>Backup file list model</returns>
        public virtual BackupFileListModel PrepareBackupFileListModel(BackupFileSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get backup files
            var backupFiles = _maintenanceService.GetAllBackupFiles().ToList();

            //prepare list model
            var model = new BackupFileListModel
            {
                Data = backupFiles.PaginationByRequestModel(searchModel).Select(file =>
                {
                    //fill in model values from the entity
                    var backupFileModel = new BackupFileModel
                    {
                        Name = _fileProvider.GetFileName(file)
                    };

                    //fill in additional values (not existing in the entity)
                    backupFileModel.Length = $"{_fileProvider.FileLength(file) / 1024f / 1024f:F2} Mb";
                    backupFileModel.Link   = $"{_webHelper.GetStoreLocation(false)}db_backups/{backupFileModel.Name}";

                    return(backupFileModel);
                }),
                Total = backupFiles.Count
            };

            return(model);
        }
Exemple #2
0
        private List <BackupFileMetadata> GetMetadatasForBackupFiles(string handInPath, long maximumFileSizeForFileInBytes)
        {
            IEnumerable <string>      filenamesInDirectory   = this._directoryService.GetFilenamesInDirectory(handInPath);
            List <BackupFileMetadata> backupFileMetadataList = new List <BackupFileMetadata>();

            foreach (string filepath in filenamesInDirectory)
            {
                BackupFileModel fileMetadataForFile = this.GetBackupFileMetadataForFile(filepath.Replace(handInPath + Path.DirectorySeparatorChar.ToString(), ""), filepath, maximumFileSizeForFileInBytes);
                if (fileMetadataForFile != null)
                {
                    backupFileMetadataList.Add(new BackupFileMetadata()
                    {
                        FilePath    = fileMetadataForFile.Path,
                        Hash        = fileMetadataForFile.Hash,
                        LastChanged = fileMetadataForFile.LastChanged
                    });
                }
            }
            return(backupFileMetadataList);
        }
Exemple #3
0
 private void SendMissingBackupFiles(string handInPath, IEnumerable <BackupFileMetadata> missingFiles, long maximumFileSizeForFileInBytes)
 {
     foreach (BackupFileMetadata missingFile in missingFiles)
     {
         string          filepath            = Path.Combine(handInPath, missingFile.FilePath);
         BackupFileModel fileMetadataForFile = this.GetBackupFileMetadataForFile(missingFile.FilePath, filepath, maximumFileSizeForFileInBytes);
         if (fileMetadataForFile != null)
         {
             this._flexClient.SendBackupFile(new BackupRequest()
             {
                 Content  = fileMetadataForFile.Data,
                 Metadata = new BackupFileMetadata()
                 {
                     Hash        = fileMetadataForFile.Hash,
                     FilePath    = fileMetadataForFile.Path,
                     LastChanged = fileMetadataForFile.LastChanged
                 }
             });
         }
     }
 }