Пример #1
0
        public async Task <List <IFile> > GetFiles()
        {
            var fromStorage = await _store.GetFiles();

            foreach (var file in fromStorage)
            {
                FoundFiles.AddOrUpdate(file.PathSha1, file, (k, v) => v = file);
            }
            foreach (var dictItem in FoundFiles.Values)
            {
                if (!fromStorage.Any(x => x.PathSha1 == dictItem.PathSha1))
                {
                    FoundFiles.TryRemove(dictItem.PathSha1, out var deletedItem);
                }
            }

            if (!SearchedAlready)
            {
                await RefreshFromFileSystem();

                SearchedAlready = true;
            }

            return(FoundFiles.Values.ToList());
        }