private Athlete LoadAthlete(string athleteId) { Athlete athlete; if (individualAthletes.TryGetValue(athleteId, out athlete)) { return(athlete); } try { using (Stream stream = new MemoryStream(dataFolder.Open(GetAthleteFileName(athleteId)))) using (TextReader textReader = new StreamReader(stream, true)) using (JsonReader jsonReader = new JsonTextReader(textReader)) { athlete = serializer.Deserialize <Athlete>(jsonReader); individualAthletes[athleteId] = athlete; return(athlete); } } catch (IOException) { return(null); } }
public List <StartingListEntry> GetStartingList() { try { mutex.EnterReadLock(); if (startingList != null) { return(startingList); } } finally { mutex.ExitReadLock(); } try { mutex.EnterWriteLock(); if (startingList != null) { return(startingList); } try { using (Stream stream = new MemoryStream(dataFolder.Open("startinglist.json"), false)) using (TextReader textReader = new StreamReader(stream, true)) using (JsonReader jsonReader = new JsonTextReader(textReader)) { startingList = serializer.Deserialize <List <StartingListEntry> >(jsonReader) ?? new List <StartingListEntry>(); } } catch (IOException) { startingList = new List <StartingListEntry>(); } return(startingList); } finally { mutex.ExitWriteLock(); } }
private void EnsureDataLoaded() { if (entries != null) { return; } try { using (Stream stream = new MemoryStream(dataFolder.Open("races.json"), false)) using (TextReader textReader = new StreamReader(stream, true)) using (JsonReader jsonReader = new JsonTextReader(textReader)) { entries = serializer.Deserialize <List <RaceIndexEntry> >(jsonReader) ?? new List <RaceIndexEntry>(); } } catch (Exception) { entries = new List <RaceIndexEntry>(); } }