80 lines
3.4 KiB
Dart
80 lines
3.4 KiB
Dart
import 'package:firebase_auth/firebase_auth.dart';
|
|
import 'package:injector/injector.dart';
|
|
import 'package:profession_repository/profession_repository.dart';
|
|
import 'package:professional_repository/professional_repository.dart';
|
|
import 'package:prosappco/blocs/auth_bloc/auth_bloc.dart';
|
|
import 'package:prosappco/blocs/authentication_bloc/authentication_bloc.dart';
|
|
import 'package:prosappco/blocs/my_user_bloc/my_user_bloc.dart';
|
|
import 'package:prosappco/blocs/professional_bloc/professional_bloc.dart';
|
|
import 'package:prosappco/blocs/professional_list_bloc/professional_list_bloc.dart';
|
|
import 'package:prosappco/blocs/professional_profile_bloc/professional_profile_bloc.dart';
|
|
import 'package:prosappco/blocs/profile_bloc/profile_bloc.dart';
|
|
import 'package:prosappco/blocs/service_bloc/service_bloc.dart';
|
|
import 'package:prosappco/blocs/setting_bloc/setting_bloc.dart';
|
|
import 'package:prosappco/blocs/sign_up_bloc/sign_up_bloc.dart';
|
|
import 'package:prosappco/blocs/sing_in_bloc/sign_in_bloc.dart';
|
|
import 'package:service_repository/service_repository.dart';
|
|
import 'package:user_repository/user_repository.dart';
|
|
import 'package:city_repository/city_repository.dart';
|
|
import 'package:setting_repository/setting_repository.dart';
|
|
|
|
class AppDI {
|
|
void register() {
|
|
final injector = Injector.appInstance;
|
|
|
|
injector.registerSingleton<UserRepository>(
|
|
(() => FirebaseUserRepository(FirebaseAuth.instance)));
|
|
|
|
injector.registerSingleton<CityRepository>(() => FirebaseCityRepository());
|
|
|
|
injector.registerSingleton<ProfessionRepository>(
|
|
() => FirebaseProfessionRepository());
|
|
|
|
injector.registerSingleton<SettingRepository>(
|
|
() => FirebaseSettingRepository());
|
|
|
|
injector.registerSingleton(() => FirebaseProfessionalRepository());
|
|
injector.registerSingleton(() => FirebaseServiceRepository());
|
|
|
|
injector.registerSingleton<AuthenticationBloc>((() =>
|
|
AuthenticationBloc(myUserRepository: injector.get<UserRepository>())));
|
|
|
|
injector.registerSingleton<MyUserBloc>(
|
|
(() => MyUserBloc(myUserRepository: injector.get<UserRepository>())));
|
|
|
|
injector.registerSingleton<ProfileBloc>(
|
|
(() => ProfileBloc(userRepository: injector.get<UserRepository>())));
|
|
|
|
injector.registerSingleton(
|
|
() => ProfessionalBloc(
|
|
professionalRepository: injector.get(),
|
|
userRepository: injector.get<UserRepository>()),
|
|
);
|
|
|
|
injector.registerDependency<SignInBloc>(
|
|
() => SignInBloc(userRepository: injector.get<UserRepository>()));
|
|
|
|
injector.registerDependency<SignUpBloc>(
|
|
() => SignUpBloc(userRepository: injector.get<UserRepository>()));
|
|
|
|
injector.registerDependency<SettingBloc>(
|
|
() => SettingBloc(userRepository: injector.get<UserRepository>()));
|
|
|
|
injector.registerDependency<AuthBloc>(
|
|
() => AuthBloc(userRepository: injector.get<UserRepository>()));
|
|
|
|
injector.registerSingleton<ProfessionalProfileBloc>(
|
|
() => ProfessionalProfileBloc(professionalRepository: injector.get()));
|
|
|
|
injector.registerDependency<ProfessionalListBloc>(
|
|
() => ProfessionalListBloc(
|
|
userRepository: injector.get<UserRepository>(),
|
|
firebaseProfessonalRepository:
|
|
injector.get<FirebaseProfessionalRepository>()),
|
|
);
|
|
|
|
injector.registerSingleton<ServiceBloc>(() => ServiceBloc(
|
|
serviceRepository: injector.get<FirebaseServiceRepository>()));
|
|
}
|
|
}
|