Ejemplo n.º 1
0
        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();
            }
        }