private async Task <IReadOnlyList <LapTimeEntry> > ReadSidekickEntriesAsync() { await TracksManager.Instance.EnsureLoadedAsync(); InitializeSidekick(); var sidekickDirectory = Path.Combine(FileUtils.GetPythonAppsDirectory(AcRootDirectory.Instance.RequireValue), "Sidekick"); using (var reader = new SidekickLapTimesReader(sidekickDirectory, this)) { var result = _sidekickStorage.GetCachedLapTimesList(reader); if (result != null) { return(result); } await TracksManager.Instance.EnsureLoadedAsync(); return(_sidekickStorage.UpdateCachedLapTimesList(reader)); } }
public async Task ExportAsync(string key) { ILapTimesReader reader; if (key == SourceId) { InitializeCm(); await Task.Run(() => { foreach (var entry in Entries.ToList()) { _cmStorage.Set(entry); } }); return; } else if (key == AcLapTimesNewReader.SourceId) { reader = new AcLapTimesNewReader(FileUtils.GetDocumentsDirectory(), this); } else if (key == SidekickLapTimesReader.SourceId) { var sidekickDirectory = Path.Combine(FileUtils.GetPythonAppsDirectory(AcRootDirectory.Instance.RequireValue), "Sidekick"); reader = new SidekickLapTimesReader(sidekickDirectory, this); } else if (key == RaceEssentialsLapTimesReader.SourceId) { var sidekickDirectory = Path.Combine(FileUtils.GetPythonAppsDirectory(AcRootDirectory.Instance.RequireValue), "RaceEssentials"); reader = new RaceEssentialsLapTimesReader(sidekickDirectory, this); } else { throw new NotSupportedException(); } await Task.Run(() => reader.Export(Entries)); }