public AuthentificationController(IRepository repository, ICustomLogger logger,
                                   IHashGenerator hashGenerator, IUserIdentityProvider userIdentityProvider, IJWTProvider jWTProvider)
 {
     this.repository           = repository ?? throw new ArgumentNullException(nameof(repository));
     this.logger               = logger ?? throw new ArgumentNullException(nameof(logger));
     this.hashGenerator        = hashGenerator ?? throw new ArgumentNullException(nameof(hashGenerator));
     this.userIdentityProvider = userIdentityProvider ?? throw new ArgumentNullException(nameof(userIdentityProvider));
     this.jWTProvider          = jWTProvider ?? throw new ArgumentNullException(nameof(jWTProvider));
 }
 public BusinessLogic(
     IMapper mapper,
     IDataService dataService,
     IAuthenticationProvider authenticationProvider,
     IJWTProvider jWTProvider,
     IRefreshTokenProvider refreshTokenProvider,
     IPropertyCheckerService propertyCheckerService,
     IPropertyMappingService propertyMappingService,
     IUrlHelper url,
     IConfiguration configuration,
     ILogger <BusinessLogic> logger,
     IEmailProvider emailProvider)
 {
     this.mapper = mapper
                   ?? throw new ArgumentNullException(nameof(mapper));
     this.dataService = dataService
                        ?? throw new ArgumentNullException(nameof(dataService));
     this.authenticationProvider = authenticationProvider
                                   ?? throw new ArgumentNullException(nameof(authenticationProvider));
     this.jWTProvider = jWTProvider
                        ?? throw new ArgumentNullException(nameof(jWTProvider));
     this.refreshTokenProvider = refreshTokenProvider
                                 ?? throw new ArgumentNullException(nameof(refreshTokenProvider));
     this.propertyCheckerService = propertyCheckerService
                                   ?? throw new ArgumentNullException(nameof(propertyCheckerService));
     this.propertyMappingService = propertyMappingService
                                   ?? throw new ArgumentNullException(nameof(propertyMappingService));
     this.url = url
                ?? throw new ArgumentNullException(nameof(url));
     this.configuration = configuration
                          ?? throw new ArgumentNullException(nameof(configuration));
     this.logger = logger
                   ?? throw new ArgumentNullException(nameof(logger));
     this.emailProvider = emailProvider
                          ?? throw new ArgumentNullException(nameof(emailProvider));
 }