public async Task <CustomerCoreModel> AddAsync(CustomerCoreModel customer) { Locker.EnterWriteLock(); try { if (await Customers.TryAddUniqueCustomerAsync(customer).ConfigureAwait(false)) { await Customers.SaveAsync().ConfigureAwait(false); return(await GetAsync(await Customers.GetIdAsync(customer.FirstName, customer.LastName) .ConfigureAwait(false)).ConfigureAwait(false)); } else { throw new ArgumentException("Customer already exists!"); } } finally { if (Locker.IsWriteLockHeld) { Locker.ExitWriteLock(); } } }
public async Task <CustomerCoreModel> UpdateAsync(CustomerCoreModel customer) { Locker.EnterWriteLock(); try { if (await Customers.DoesCustomerExistAsync(customer).ConfigureAwait(false)) { throw new ArgumentException("Customer already exists!"); } var result = Customers.Update(customer); await Customers.SaveAsync().ConfigureAwait(false); return(result); } finally { if (Locker.IsWriteLockHeld) { Locker.ExitWriteLock(); } } }
public async Task <CustomerCoreModel> UpdateAsync(CustomerCoreModel model) { return(await CustomerDbReaderWriter.UpdateAsync(model).ConfigureAwait(false)); }