public CounterpartyContract CreateContract(IUnitOfWork uow, Order order, DateTime?issueDate) { var contractType = counterpartyContractRepository.GetContractTypeForPaymentType(order.Client.PersonType, order.PaymentType); var org = organizationProvider.GetOrganization(uow, order); var contractSubNumber = CounterpartyContract.GenerateSubNumber(order.Client); CounterpartyContract contract = new CounterpartyContract { Counterparty = order.Client, ContractSubNumber = contractSubNumber, Organization = org, IsArchive = false, ContractType = contractType }; if (issueDate.HasValue) { contract.IssueDate = issueDate.Value; } return(contract); }