Exemple #1
0
        public bool FindEqualFile(Stream source, IEnumerable <MediaFile> files, bool leaveOpen, out MediaFile equalFile)
        {
            Guard.NotNull(source, nameof(source));
            Guard.NotNull(files, nameof(files));

            equalFile = null;

            try
            {
                foreach (var file in files)
                {
                    source.Seek(0, SeekOrigin.Begin);

                    using (var other = _storageProvider.OpenRead(file))
                    {
                        if (source.ContentsEqual(other, true))
                        {
                            equalFile = file;
                            return(true);
                        }
                    }
                }

                return(false);
            }
            catch
            {
                return(false);
            }
            finally
            {
                if (!leaveOpen)
                {
                    source.Dispose();
                }
            }
        }
 public Stream OpenRead()
 {
     return(_storageProvider?.OpenRead(File));
 }