private async Task <bool> CheckIndexExistsAsync(string tableName, string field) { return(await Task.Run(async() => { Amazon.QLDB.Driver.IAsyncResult result = await qldbDriver.Execute(async transactionExecutor => { IIonValue ionTableName = this.valueFactory.NewString(tableName); return await transactionExecutor.Execute($"SELECT * FROM information_schema.user_tables WHERE name = ?", ionTableName); }); List <IIonValue> ionValues = await result.ToListAsync(); if (ionValues.Any()) { IIonList indexes = ionValues.First().GetField("indexes"); foreach (IIonValue index in indexes) { string expr = index.GetField("expr").StringValue; if (expr.Contains(field)) { return true; } } } return false; })); }
public async Task Run() { await Task.Run(async() => { await DeleteDataFromTable(VehicleTableName); await InsertVehicles(); await DeleteDataFromTable(PersonTableName); Amazon.QLDB.Driver.IAsyncResult insertPeopleResult = await InsertPeople(); List <string> peopleDocumentIds = await insertPeopleResult.Select(x => x.GetField("documentId").StringValue).ToListAsync(); await DeleteDataFromTable(DriversLicenseTableName); await InsertDriversLicenses(peopleDocumentIds); await DeleteDataFromTable(VehicleRegistrationTableName); await InsertVehicleRegistrations(peopleDocumentIds); }); }