public async Task ExportToFile(BandEventBase eventBase, string filePath) { if (!(eventBase is RunEvent)) { throw new ArgumentException("eventBase must be of type SleepEvent to use the RunToCSVExporter"); } var runEvent = eventBase as RunEvent; await Task.Run(() => { var dataDump = new List <Dictionary <string, object> >(); foreach (var sequence in runEvent.Sequences) { var runSequence = sequence as RunEventSequenceItem; var sequenceData = new Dictionary <string, object>(BaseSequenceDumper.Dump(sequence)) { { "Total Distance", runSequence.TotalDistance }, { "Split Distance", runSequence.SplitDistance }, { "Split Pace", runSequence.SplitPace }, { "Overall Pace", runSequence.OverallPace }, { "Actual Distance", runSequence.ActualDistance }, { "Paused Time", runSequence.PausedTime }, }; dataDump.Add(sequenceData); } // TODO: pass through convertDateTimeToLocal CSVExporter.ExportToFile(dataDump, filePath); }); }
public async Task ExportToFile(BandEventBase eventBase, string filePath) { if (!(eventBase is SleepEvent)) { throw new ArgumentException("eventBase must be of type SleepEvent to use the SleepToCSVExporter"); } var sleepEvent = eventBase as SleepEvent; await Task.Run(() => { var dataDump = new List <Dictionary <string, object> >(); foreach (var sequence in sleepEvent.Sequences) { var sleepSequence = sequence as SleepEventSequenceItem; var sequenceData = new Dictionary <string, object>(BaseSequenceDumper.Dump(sequence)); sequenceData.Add("Sequence Type", sleepSequence.SequenceType); sequenceData.Add("Sleep Time", sleepSequence.SleepTime); sequenceData.Add("Day Id", sleepSequence.DayId); sequenceData.Add("Sleep Type", sleepSequence.SleepType); dataDump.Add(sequenceData); } // TODO: pass through convertDateTimeToLocal CSVExporter.ExportToFile(dataDump, filePath); }); }