private SubjectRole GetSubjectRole(Subjects subject) { SubjectRole subjectRole = new SubjectRole { CustomerCode = subject.CustomerCode, RoleOfCustomer = ctx.Roles.Where(x => x.Id == subject.RoleId).Select(u => u.RoleName).SingleOrDefault(), RealEndDate = new DateType(subject.EndDate), GuarantorRelationship = subject.GuarantorRelationship }; return(subjectRole); }
private Contract ConvertBatchContractToContract(BatchContract batchContract) { /* Map BatchContract to Contract */ Contract contract = new Contract() { contractCode = batchContract.ContractCode, /* Map BatchContractContractData to Contract */ phaseOfContract = batchContract.ContractData.PhaseOfContract == ContractPhaseOfContract.Open ? "Open" : "Close", originalAmount = new Amount() { value = batchContract.ContractData.OriginalAmount.Value, currency = batchContract.ContractData.OriginalAmount.Currency.ToString() }, installmentAmount = new Amount() { value = batchContract.ContractData.InstallmentAmount.Value, currency = batchContract.ContractData.InstallmentAmount.Currency.ToString() }, currentBalance = new Amount() { value = batchContract.ContractData.CurrentBalance.Value, currency = batchContract.ContractData.CurrentBalance.Currency.ToString() }, overdueBalance = new Amount() { value = batchContract.ContractData.OverdueBalance.Value, currency = batchContract.ContractData.OverdueBalance.Currency.ToString() }, dateOfLastPayment = batchContract.ContractData.DateOfLastPayment, nextPaymentDate = batchContract.ContractData.NextPaymentDate, dateAccountOpened = batchContract.ContractData.DateAccountOpened, realEndDate = batchContract.ContractData.RealEndDate }; /* Map BatchContractIndividuals to Individuals and add them into Contract */ contract.individuals = new List <Individual>(); foreach (BatchContractIndividual batchIndividual in batchContract.Individual) { Individual individual = new Individual() { CustomerCode = batchIndividual.CustomerCode, contractCode = contract.contractCode, FirstName = batchIndividual.FirstName, LastName = batchIndividual.LastName, Gender = batchIndividual.Gender.ToString(), DateOfBirth = batchIndividual.DateOfBirth, }; IdentificationNumber identNo = new IdentificationNumber() { nationalID = batchIndividual.IdentificationNumbers.NationalID, individual = individual }; individual.identificationNumbers = new List <IdentificationNumber>(); individual.identificationNumbers.Add(identNo); contract.individuals.Add(individual); } /* Map BatchContractSubjectRoles to SubjectRoles and add them into Contract */ contract.subjectRoles = new List <SubjectRole>(); foreach (BatchContractSubjectRole batchSubjectRole in batchContract.SubjectRole) { SubjectRole subjectRole = new SubjectRole() { contractCode = contract.contractCode, customerCode = batchSubjectRole.CustomerCode, roleOfCustomer = batchSubjectRole.RoleOfCustomer.ToString() }; if (batchSubjectRole.GuaranteeAmount != null) { subjectRole.guaranteeAmount = new Amount(amount: batchSubjectRole.GuaranteeAmount.Value, currency: batchSubjectRole.GuaranteeAmount.Currency.ToString()); } else { subjectRole.guaranteeAmount = new Amount() { value = 0, currency = "" }; } contract.subjectRoles.Add(subjectRole); } return(contract); }
public async Task ExtractAsync(List <XmlElements.Contract> validContracts) { var contracts = new List <Contract>(); foreach (var con in validContracts) { var originalAmount = con.ContractData.OriginalAmount != null? Money.New(con.ContractData.OriginalAmount.Value, con.ContractData.OriginalAmount.Currency) : new Money(); var installmentAmount = con.ContractData.InstallmentAmount != null? Money.New(con.ContractData.InstallmentAmount.Value, con.ContractData.InstallmentAmount.Currency) : new Money(); var currentBalance = Money.New(con.ContractData.OriginalAmount.Value, con.ContractData.OriginalAmount.Currency); var overdueBalance = con.ContractData.OverdueBalance != null? Money.New(con.ContractData.OverdueBalance.Value, con.ContractData.OverdueBalance.Currency) : new Money(); var contractData = ContractData.New( originalAmount, installmentAmount, currentBalance, overdueBalance, con.ContractData.DateOfLastPayment, con.ContractData.NextPaymentDate, con.ContractData.DateAccountOpened, con.ContractData.RealEndDate ); var individuals = new List <Individual>(); foreach (var ind in con.Individual) { var individual = Individual.New( ind.CustomerCode, ind.FirstName, ind.LastName, ind.Gender, ind.DateOfBirth, ind.IdentificationNumbers.NationalID.FirstOrDefault() ); individuals.Add(individual); } var subjectRoles = new List <SubjectRole>(); foreach (var role in con.SubjectRole) { var guaranteeAmount = role.GuaranteeAmount is null ? new Money() : Money.New(role.GuaranteeAmount.Value, role.GuaranteeAmount.Currency); var subjectRole = SubjectRole.New(role.CustomerCode, role.RoleOfCustomer.Value, guaranteeAmount ); subjectRoles.Add(subjectRole); } var contract = Contract.New(con.ContractCode, contractData, individuals, subjectRoles); if (contract.IsValid()) { contracts.Add(contract); } } await SaveData(contracts); }