private async Task FindOutIds(SaleCoreModel sale) { if (await Customers.DoesCustomerExistAsync(sale.Customer).ConfigureAwait(false)) { sale.Customer.Id = await Customers.GetIdAsync(sale.Customer.FirstName, sale.Customer.LastName) .ConfigureAwait(false); } else { ThrowArgumentException("There is no such Customer. Register it!"); } if (await Managers.DoesManagerExistAsync(sale.Manager)) { sale.Manager.Id = await Managers.GetIdAsync(sale.Manager.LastName).ConfigureAwait(false); } else { ThrowArgumentException("There is no such Manager. Register it!"); } if (await Products.DoesProductExistAsync(sale.Product)) { sale.Product.Id = await Products.GetIdAsync(sale.Product.Name).ConfigureAwait(false); } else { ThrowArgumentException("There is no such Product. Register it!"); } }
public async Task <SaleCoreModel> UpdateAsync(SaleCoreModel sale) { Locker.EnterWriteLock(); try { await FindOutIds(sale).ConfigureAwait(false); var result = Sales.Update(sale); await Sales.SaveAsync().ConfigureAwait(false); return(result); } finally { if (Locker.IsWriteLockHeld) { Locker.ExitWriteLock(); } } }
public async Task <SaleCoreModel> UpdateAsync(SaleCoreModel model) { return(await SaleDbReaderWriter.UpdateAsync(model).ConfigureAwait(false)); }