Esempio n. 1
0
        private static void SaveTrackStates()
        {
            lock (_syncState)
            {
                if (!SaveWaitingTrackStates.Any())
                {
                    return;
                }

                var trackStates = SaveWaitingTrackStates.First();
                SaveWaitingTrackStates.Remove(trackStates);

                if (!trackStates.Any())
                {
                    return;
                }

                var records = JsonConvert.SerializeObject(trackStates);

                var recordsFolder = System.IO.Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory, "SavedTrackStates");
                if (!Directory.Exists(recordsFolder))
                {
                    Directory.CreateDirectory(recordsFolder);
                }

                var fileName =
                    System.IO.Path.Combine(recordsFolder, trackStates.First().DateTime.ToString("s").Replace(':', '-'));

                File.WriteAllText(fileName, records);
                Log.Info(TAG, $"TrackStates saved: {fileName}. Count: {trackStates.Count}");
            }
        }
Esempio n. 2
0
        public static void AddTrackState(TrackState trackState)
        {
            if (trackState.DateTime - _firstTrackStateTime > TimePortion)
            {
                SaveWaitingTrackStates.Add(CurrentStates);
                CurrentStates        = new List <TrackState>();
                _firstTrackStateTime = trackState.DateTime;
            }

            CurrentStates.Add(trackState);

            Task.Run(SaveTrackStates);
        }