public void BindImplementations()
        {
            Kernel = new StandardKernel();
            Kernel.Load(Assembly.GetExecutingAssembly());

            string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            try
            {
                Kernel.Bind(x =>
                {
                    x.FromAssembliesInPath(path)
                        .SelectAllClasses()
                        .InheritedFrom<IRentalsRepository>()
                        .BindDefaultInterface().Configure(b => b.InSingletonScope());
                });

                Kernel.Bind(x =>
                {
                    x.FromAssembliesInPath(path)
                        .SelectAllClasses()
                        .InheritedFrom<IFactory>()
                        .BindDefaultInterface().Configure(b => b.InSingletonScope());
                });

                Kernel.Bind(x =>
                {
                    x.FromAssembliesInPath(path)
                        .SelectAllClasses()
                        .InheritedFrom<IRentalService>()
                        .BindAllInterfaces().Configure(b => b.InSingletonScope());
                });

                RentalsRepo = Kernel.Get<IRentalsRepository>();
                RentalService = Kernel.Get<IRentalService>();
                VehicleTypesRepo = Kernel.Get<IVehicleTypesRepository>();
            }
            catch (Ninject.ActivationException exc)
            {
                var message = new StringBuilder();
                message.AppendLine("Exception when binding with Ninject.");
                message.AppendFormat(
                    "Check that all implementation assemblies exists in the executing assemblies path {0}{1}", path,
                    Environment.NewLine);
                message.AppendLine("If using Resharper, turn off shadow-copying of assemblies in unit test settings.");
                message.AppendLine(exc.Message);
                var wrappingExc = new Exception(message.ToString());
                throw wrappingExc;
            }
        }
 public VehicleTypesService(IVehicleTypesRepository vehicleTypesRepository)
 {
     _vehicleTypesRepository = vehicleTypesRepository;
 }