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);
        }
Exemple #2
0
        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);
        }