private void EnsureDependenciesAreSet(Invoice item) { var bankInfo = item.BankInformation; var customer = item.Customer; var contractor = item.Contractor; var customerAddress = item.Customer?.Address; var contractorAddress = item.Contractor?.Address; if (bankInfo is null) { throw new ArgumentNullException(nameof(bankInfo)); } if (customer is null) { throw new ArgumentNullException(nameof(customer)); } if (contractor is null) { throw new ArgumentNullException(nameof(contractor)); } if (customerAddress is null) { throw new ArgumentNullException(nameof(customerAddress)); } if (contractorAddress is null) { throw new ArgumentNullException(nameof(contractorAddress)); } if (!bankInfo.Id.HasValue) { var success = bankInformationProvider.CreateOrUpdate(bankInfo).success; if (success) { item.BankInformation = bankInformationProvider.GetByEverythingExceptId(bankInfo).First(); } } if (!customer.Id.HasValue) { var success = customerProvider.CreateOrUpdate(customer).success; if (success) { item.Customer = customerProvider.GetByEverythingExceptId(customer).First(); } } if (!contractor.Id.HasValue) { var success = contractorProvider.CreateOrUpdate(contractor).success; if (success) { item.Contractor = contractorProvider.GetByEverythingExceptId(contractor).First(); } } }
private void EnsureDependenciesAreSet(Customer item) { var address = item.Address; if (address is null) { throw new ArgumentNullException(nameof(address)); } if (address.Id.HasValue) { return; } var success = addressProvider.CreateOrUpdate(address).success; if (success) { item.Address = addressProvider.GetByEverythingExceptId(address).First(); } }