public BMIUseCase(IBMIPresenter bmiPresenter,
                   IPushHistoryDelegate dataPushListener,
                   Component disposableComponent)
 {
     bmiDomain                = new BMIDomain();
     data                     = new TData();
     this.bmiPresenter        = bmiPresenter;
     this.dataPushListener    = dataPushListener;
     this.disposableComponent = disposableComponent;
 }
 void ConstructUseCases(IHistoryListPresenter historyListPresenter,
                        IBMIHistoryRepository historyRepository,
                        IBMIPresenter bmiPresenter,
                        IUserAccountRepository userAccountRepository,
                        IAccountPresenter accountPresenter)
 {
     historyUseCase = new HistoryUseCase(
         historyListPresenter,
         historyRepository,
         this);
     bmiUseCase = new BMIUseCase <BMIDataTransferObject>(
         bmiPresenter,
         historyUseCase as IPushHistoryDelegate,
         this);
     logoutUseCase = new LogoutUseCase(
         userAccountRepository,
         accountPresenter,
         this);
 }