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; })); }
private IEnumerable <string> GetSecondaryOwners(TransactionExecutor transactionExecutor, string vin) { IIonValue ionVin = this.valueFactory.NewString(vin); IResult selectResult = transactionExecutor.Execute("SELECT Owners.SecondaryOwners FROM VehicleRegistration AS v WHERE v.VIN = ?", ionVin); IIonList secondaryOwners = selectResult.First().GetField("SecondaryOwners") as IIonList; if (secondaryOwners != null) { List <string> secondaryOwnerIds = new List <string>(); foreach (var owner in secondaryOwners) { secondaryOwnerIds.Add(owner?.GetField("PersonId")?.StringValue); } return(secondaryOwnerIds); } else { return(Enumerable.Empty <string>()); } }