Esempio n. 1
0
        public override Task Download()
        {
            return(Task.Run(async() =>
            {
                var patch = await FetchPatch();

                var fileList = await FetchPatchManifest(patch.PatchId);
                var rootUrl = string.Format(PatchRootFormat, patch.PatchId);

                await _downloader.StartDownload(rootUrl, fileList.Files);

                fileList.Files.GroupBy(f => f.HashGroup)
                .ForEach(group =>
                {
                    var hm = new HashManager(group.Key);

                    hm.CreateIfMissing();
                    hm.Load();

                    foreach (var file in group)
                    {
                        hm.Put(file.FullFile, file.Hash);
                    }

                    hm.Save();
                });
            }));
        }