setup function

void setup()

Implementation

void setup() {
  ///Network Requester
  getIt.registerLazySingleton(() => NetworkRequester());

  ///App
  getIt.registerFactory<AppRepository>(
    () => AppRepositoryImpl(networkRequester: getIt<NetworkRequester>()),
  );
  getIt.registerFactory(() => AppBloc(repository: getIt<AppRepository>()));

  ///Offer
  getIt.registerFactory<OfferRepository>(
      () => OfferRepositoryImpl(networkRequester: getIt<NetworkRequester>()));
  getIt.registerLazySingleton<OfferBloc>(
    () => OfferBloc(
      repository: getIt<OfferRepository>(),
    ),
  );

  ///Purchased Voucher
  getIt.registerFactory<PurchasedVoucherRepository>(() =>
      PurchasedVoucherRepositoryImpl(
          networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<PurchasedVoucherBloc>(
    () => PurchasedVoucherBloc(
      repository: getIt<PurchasedVoucherRepository>(),
    ),
  );

  ///Checkout
  getIt.registerFactory<CheckoutRepository>(() =>
      CheckoutRepositoryImpl(networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<CheckoutBloc>(
    () => CheckoutBloc(
      repository: getIt<CheckoutRepository>(),
      paymentService: getIt<EaseBuzzPaymentService>(),
    ),
  );

  ///Search
  getIt.registerFactory<SearchRepository>(
      () => SearchRepositoryImpl(networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<SearchBloc>(
    () => SearchBloc(
      repository: getIt<SearchRepository>(),
    ),
  );

  ///Featured
  getIt.registerFactory<FeaturedRepository>(
          () => FeaturedRepositoryImpl(networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<FeaturedBloc>(
        () => FeaturedBloc(
      repository: getIt<FeaturedRepository>(),
    ),
  );

  ///Payment Status
  getIt.registerFactory<PaymentStatusRepository>(() =>
      PaymentStatusRepositoryImpl(networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<PaymentStatusBloc>(
    () => PaymentStatusBloc(
      repository: getIt<PaymentStatusRepository>(),
    ),
  );

  ///Purchase Voucher
  getIt.registerFactory<PurchaseVoucherRepository>(() =>
      PurchaseVoucherRepositoryImpl(
          networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<PurchaseVoucherBloc>(
    () => PurchaseVoucherBloc(
      repository: getIt<PurchaseVoucherRepository>(),
    ),
  );

  ///Purchased Voucher
  getIt.registerFactory<TransactionHistoryRepository>(() =>
      TransactionHistoryRepositoryImpl(
          networkRequester: getIt<NetworkRequester>()));
  getIt.registerFactory<TransactionHistoryBloc>(
        () => TransactionHistoryBloc(
      repository: getIt<TransactionHistoryRepository>(),
    ),
  );

  ///Help Center
  getIt.registerFactory<HelpCenterRepository>(() =>
      HelpCenterRepositoryImpl(
          networkRequester: getIt<NetworkRequester>()));
  getIt.registerLazySingleton<HelpCenterBloc>(
        () => HelpCenterBloc(
      repository: getIt<HelpCenterRepository>(),
    ),
  );

  ///Easebuzz Payment Service
  getIt.registerLazySingleton(() => EaseBuzzPaymentService());

  ///Cashfree Payment Service
  getIt.registerLazySingleton(() => CashfreePaymentService());

  ///Razorpay Payment Service
  getIt.registerLazySingleton(() => RazorpayPaymentService());
}