public async Task CreateOrUpdateContactAsync(Contact contact) { if (string.IsNullOrEmpty(contact.Id)) { contact.Id = Guid.NewGuid().ToString(); } ContactEntity contactEntity = await _contactEntityTable.FirstOrDefaultAsync(x => x.Id == contact.Id); if (contactEntity is null) { ContactEntity entity = contact.CreateEntity(); await _database.InsertAsync(entity); } else { contactEntity.Update(contact); await _database.UpdateAsync(contactEntity); } }
public async Task TestAsyncTableQueryToFirstOrDefaultAsyncMissing() { SQLiteAsyncConnection conn = GetAsyncConnection(); await conn.CreateTableAsync <Customer>(); // create... Customer customer = CreateCustomer(); await conn.InsertAsync(customer); // query... AsyncTableQuery <Customer> query = conn.Table <Customer>().Where(v => v.Id == -1); Customer loaded = await query.FirstOrDefaultAsync(); // check... Assert.IsNull(loaded); }
public async Task TestAsyncTableQueryToFirstOrDefaultAsyncFound() { SQLiteAsyncConnection conn = GetAsyncConnection(); await conn.CreateTableAsync <Customer>(); // create... Customer customer = CreateCustomer(); await conn.InsertAsync(customer); // query... AsyncTableQuery <Customer> query = conn.Table <Customer>().Where(v => v.Id == customer.Id); Customer loaded = await query.FirstOrDefaultAsync(); // check... Assert.AreEqual(customer.Email, loaded.Email); }
public void TestAsyncTableQueryToFirstOrDefaultAsyncMissing() { SQLiteAsyncConnection conn = GetConnection(); conn.CreateTableAsync <Customer>().Wait(); // create... Customer customer = CreateCustomer(); conn.InsertAsync(customer).Wait(); // query... AsyncTableQuery <Customer> query = conn.Table <Customer>().Where(v => v.Id == -1); Task <Customer> task = query.FirstOrDefaultAsync(); task.Wait(); Customer loaded = task.Result; // check... Assert.IsNull(loaded); }
public void TestAsyncTableQueryToFirstOrDefaultAsyncFound() { SQLiteAsyncConnection conn = GetConnection(); conn.CreateTableAsync <Customer>().Wait(); // create... Customer customer = CreateCustomer(); conn.InsertAsync(customer).Wait(); // query... AsyncTableQuery <Customer> query = conn.Table <Customer>().Where(v => v.Id == customer.Id); Task <Customer> task = query.FirstOrDefaultAsync(); task.Wait(); Customer loaded = task.Result; // check... Assert.AreEqual(customer.Email, loaded.Email); }
public static Task <IOption <B> > FirstOption <A, B>(this AsyncTableQuery <A> tableQuery) where A : new() where B : class { return(tableQuery.FirstOrDefaultAsync().Map(a => a.As <B>())); }
//Custom Any implementations due to lack of method in SQLite public static bool Any(this AsyncTableQuery <User> res) => res.FirstOrDefaultAsync().Result != null;