private void SetProperties()
 {
     try
     {
         LoanGatewayFactory factory = new LoanGatewayFactory();
         gateway          = factory.CreateLoanGateway(SelectedLoanTypes);
         MaxAmount        = gateway.MaxAmount;
         MaxNumberOfYears = gateway.MaxNumberOfYears;
         if (NumberOfYears > MaxNumberOfYears)
         {
             NumberOfYears = MaxNumberOfYears;
         }
     }
     catch (Exception ex) { log.Error(ex); throw ex; }
 }
 private void ApplyProposal()
 {
     try
     {
         if (Amount <= 0)
         {
             Plan = null;
             return;
         }
         Proposal proposal = new Proposal()
         {
             Amount        = this.Amount,
             NumberOfYears = this.NumberOfYears,
             TypeOfLoan    = SelectedLoanTypes
         };
         LoanGatewayFactory factory = new LoanGatewayFactory();
         gateway = factory.CreateLoanGateway(proposal.TypeOfLoan);
         Plan    = gateway.GetPlan(proposal);
     }
     catch (Exception ex) { log.Error(ex); throw ex; }
 }