private FilePropertiesModel CollectFromFileInfoSync(FileInfo file) { var result = new FilePropertiesModel { FileName = file.Name, FullFileName = file.FullName, FileSize = 0, FileHash = string.Empty }; try { result.FileSize = (ulong)file.Length; result.FileHash = CreateFileHashFromFileInfo(file); } catch (Exception) { // nop } return(result); }
public async Task StartAsync(List <String> directories, string oneDriveAccessToken, IPhotoSpaceSaverCallbacks callbacks) { callbacks.Started(); var oneDriveFileFinder = new OneDriveFileFinder(); var localFiles = await fileHashCollector.CollectAsync(directories); foreach (var localFile in localFiles) { FilePropertiesModel oneDriveFile = oneDriveFileFinder.FindFileOnOneDrive(localFile.FileHash, oneDriveAccessToken).Result; if (oneDriveFile != null && oneDriveFile.FileName == localFile.FileName && oneDriveFile.FileHash == localFile.FileHash) { File.Delete(localFile.FullFileName); callbacks.FileDeleted(localFile.FileName); } else { callbacks.FileSkipped(localFile.FileName); } } callbacks.Finished(true); }