Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }