/// <summary> /// Reads the data asynchronously. /// </summary> /// <param name="databaseAccess">The database access.</param> /// <returns></returns> private static async Task ReadDataAsync(ITrackingDataDatabaseAccess databaseAccess) { Console.WriteLine("Getting mutant readings..."); var mutantReadings = await databaseAccess.SelectAsync(); foreach (var tracking in mutantReadings) { Console.WriteLine($"{tracking.FirstName} {tracking.LastName} ({tracking.Location}) : [speed: {tracking.Speed}, heat: {tracking.Heat}]"); } }
/// <summary> /// Deletes the data asynchronously. /// </summary> /// <param name="databaseAccess">The database access.</param> /// <returns></returns> private static async Task DeleteDataAsync(ITrackingDataDatabaseAccess databaseAccess) { Console.WriteLine("Deleting mutant readings..."); var mutantReadings = await databaseAccess.SelectAsync(); var mutants = mutantReadings.GroupBy(x => new { x.FirstName, x.LastName }).Select(x => x.First()).ToList(); foreach (var tracking in mutants) { await databaseAccess.DeleteAsync(tracking); } if (!(await databaseAccess.SelectAsync()).Any()) { Console.WriteLine("All entries have been deleted"); } }
/// <summary> /// Inserts the data asynchronously. /// </summary> /// <param name="databaseAccess">The database access.</param> /// <returns></returns> private async Task InsertDataAsync(ITrackingDataDatabaseAccess databaseAccess) { Console.WriteLine("Inserting mutant readings..."); await databaseAccess.InsertAsync(this.GenerateData()); }