public PassageController(
     ICommitManager commitManager,
     ICardManager cardManager,
     IDoorReaderManager doorReaderManager,
     IDoorActionManager doorActionManager)
 {
     _commitManager     = commitManager ?? throw new ArgumentNullException(nameof(commitManager));
     _cardManager       = cardManager ?? throw new ArgumentNullException(nameof(cardManager));
     _doorReaderManager = doorReaderManager ?? throw new ArgumentNullException(nameof(doorReaderManager));
     _doorActionManager = doorActionManager ?? throw new ArgumentNullException(nameof(doorActionManager));
 }
 public DoorActionController(
     IMapper mapper,
     UserManager <User> userManager,
     ICardManager cardManager,
     IDoorActionManager doorActionManager,
     IReportService reportService,
     RazorViewToStringRenderer razorViewEngine)
 {
     _mapper            = mapper ?? throw new ArgumentNullException(nameof(mapper));
     _userManager       = userManager ?? throw new ArgumentNullException(nameof(userManager));
     _cardManager       = cardManager ?? throw new ArgumentNullException(nameof(cardManager));
     _doorActionManager = doorActionManager ?? throw new ArgumentNullException(nameof(doorActionManager));
     _reportService     = reportService ?? throw new ArgumentNullException(nameof(reportService));
     _razorViewEngine   = razorViewEngine ?? throw new ArgumentNullException(nameof(razorViewEngine));
 }
        public DoorActionManagerTests()
        {
            var serviceProvider = new ServiceCollection()
                                  .AddDbContext <ApplicationContext>(options =>
                                                                     options.UseInMemoryDatabase($"{nameof(DoorActionManagerTests)}_Db")
                                                                     .UseInternalServiceProvider(
                                                                         new ServiceCollection()
                                                                         .AddEntityFrameworkInMemoryDatabase()
                                                                         .BuildServiceProvider()))
                                  .AddAutoMapper(Assembly.Load("Secure.SecurityDoors.Logic"))
                                  .BuildServiceProvider();

            _applicationContext = serviceProvider.GetRequiredService <ApplicationContext>();
            var mapper = serviceProvider.GetRequiredService <IMapper>();

            _doorActionManager = new DoorActionManager(
                mapper,
                _applicationContext);
        }