/// <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); }
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); }
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 } }); } } }