void HandleModify(ICollection <FileObjectMapping> modify, IDictionary <string, Status> statusDic, ProgressLeaf progressLeaf) { StatusRepo.ResetWithoutClearItems(RepoStatus.Unpacking, modify.Count); var i = 0; modify.OrderByDescending(x => Tools.FileUtil.SizePrediction(x.FilePath)) .ForEach(m => { ProcessModified(statusDic, m, (p, s) => progressLeaf?.Update(null, (i + p / 100).ToProgress(modify.Count))); StatusRepo.IncrementDone(); progressLeaf?.Update(null, i++.ToProgress(modify.Count)); }); progressLeaf?.Finish(); }
public void ProgressDownloadingFlatTest() { SUT = new ProgressComponent("Stage"); var networkMods = new ProgressComponent("Network mods"); var networkModsDownloads = new ProgressLeaf("Downloading"); networkModsDownloads.Update(500, 50); networkMods.AddComponents(networkModsDownloads); var groupMods = new ProgressComponent("Group mods"); groupMods.AddComponents(new ProgressLeaf("Mod 3")); SUT.AddComponents(networkMods, groupMods); var sut = SUT.Flatten(); sut[0].Title.Should().Be("Stage"); sut[0].Progress.Should().Be(25); sut[0].ComponentsCount.Should().Be(2); sut[0].CurrentStage.Should().Be(1); sut[0].Speed.Should().Be(500); sut[1].Title.Should().Be("Network mods"); sut[1].Progress.Should().Be(50); sut[1].ComponentsCount.Should().Be(1); sut[1].CurrentStage.Should().Be(1); sut[1].Speed.Should().Be(500); sut[2].Title.Should().Be("Downloading"); sut[2].Progress.Should().Be(50); sut[2].ComponentsCount.Should().Be(0); sut[2].CurrentStage.Should().Be(0); sut[2].Speed.Should().Be(500); }
public void TestProgressDownloading() { SUT = new ProgressComponent("Stage"); var networkMods = new ProgressComponent("Network mods"); var networkModsDownloads = new ProgressLeaf("Downloading"); networkModsDownloads.Update(500, 50); networkMods.AddComponents(networkModsDownloads); var groupMods = new ProgressComponent("Group mods"); groupMods.AddComponents(new ProgressLeaf("Mod 3")); SUT.AddComponents(networkMods, groupMods); SUT.StatusText.Should().Be("Stage 1/2 25%\nNetwork mods 1/1 50%\nDownloading 50% @ 500 B/s"); }
private static void Call(ProgressLeaf leaf, bool inclProgress, AverageContainer2 c, long?speed, double progress) { leaf.Update(c.UpdateSpecial(speed), inclProgress ? progress : leaf.Progress); }