예제 #1
0
        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));
            }
        }
예제 #2
0
        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));
        }