public SavingUnblockCompulsorySavingsEvent GenerateUnblockCompulsoruSavingEvent(User user, bool cancellable)
 {
     int contracId = Id;
     SavingBlockCompulsarySavingsEvent savingBlockEvent = GetBlockCompulsorySavingEvent();
     SavingUnblockCompulsorySavingsEvent savingUnblockEvent = new SavingUnblockCompulsorySavingsEvent
                                                                  {
                                                                      ContracId = contracId,
                                                                      User = user,
                                                                      Amount = savingBlockEvent.Amount,
                                                                      Date = TimeProvider.Now,
                                                                      EntryDate = TimeProvider.Now,
                                                                      Cancelable = cancellable,
                                                                      Branch = Branch,
                                                                      Currency = Product.Currency,
                                                                  };
     Events.Add(savingUnblockEvent);
     return savingUnblockEvent;
 }
 public void FireSavingUnblockEvent(SavingUnblockCompulsorySavingsEvent savingUnblockEvent, int contractId, int loanRepayEventId, SqlTransaction sqlTransac)
 {
     savingUnblockEvent.LoanEventId = loanRepayEventId;
     _savingEventManagement.Add(savingUnblockEvent, contractId, sqlTransac);
 }
 private static SavingEvent GetSavingsEvent(string code)
 {
     SavingEvent e;
     switch (code)
     {
         case OSavingEvents.Deposit:
             e = new SavingDepositEvent();
             break;
         case OSavingEvents.Withdraw:
             e = new SavingWithdrawEvent();
             break;
         case OSavingEvents.Accrual:
             e = new SavingInterestsAccrualEvent();
             break;
         case OSavingEvents.Posting:
             e = new SavingInterestsPostingEvent();
             break;
         case OSavingEvents.InitialDeposit:
             e = new SavingInitialDepositEvent();
             break;
         case OSavingEvents.CreditTransfer:
             e = new SavingCreditTransferEvent();
             break;
         case OSavingEvents.DebitTransfer:
             e = new SavingDebitTransferEvent();
             break;
         case OSavingEvents.ManagementFee:
             e = new SavingManagementFeeEvent();
             break;
         case OSavingEvents.SavingClosure:
             e = new SavingClosureEvent();
             break;
         case OSavingEvents.Close:
             e = new SavingCloseEvent();
             break;
         case OSavingEvents.OverdraftFees:
             e = new SavingOverdraftFeeEvent();
             break;
         case OSavingEvents.Agio:
             e = new SavingAgioEvent();
             break;
         case OSavingEvents.PendingDeposit:
             e = new SavingPendingDepositEvent();
             break;
         case OSavingEvents.Reopen:
             e = new SavingReopenEvent();
             break;
         case OSavingEvents.PendingDepositRefused:
             e = new SavingPendingDepositRefusedEvent();
             break;
         case OSavingEvents.SpecialOperationCredit:
             e = new SavingCreditOperationEvent();
             break;
         case OSavingEvents.SpecialOperationDebit:
             e = new SavingDebitOperationEvent();
             break;
         case OSavingEvents.InterBranchCreditTransfer:
             e = new SavingCreditInterBranchTransferEvent();
             break;
         case OSavingEvents.InterBranchDebitTransfer:
             e = new SavingDebitInterBranchTransferEvent();
             break;
         case OSavingEvents.LoanDisbursement:
             e = new SavingLoanDisbursementEvent();
             break;
         case OSavingEvents.SavingLoanRepayment:
             e = new LoanRepaymentFromSavingEvent();
             break;
         case OSavingEvents.BlockCompulsarySavings:
             e = new SavingBlockCompulsarySavingsEvent();
             break;
         case OSavingEvents.UnblockCompulsorySavings:
             e = new SavingUnblockCompulsorySavingsEvent();
             break;
         default:
             Debug.Fail("Failed to create saving event object");
             throw new Exception();
     }
     return e;
 }