internal static TRepository CreateReporsitory <TRepository>(ICoursesUnitOfWork unitOfWork)
        {
            var repoType    = typeof(TRepository);
            var constructor = repoType.GetConstructor(new[] { typeof(ICoursesUnitOfWork) });

            if (constructor == null)
            {
                throw new ArgumentException(
                          "Could not find target constructor.");
            }

            return((TRepository)constructor.Invoke(new object[] { unitOfWork }));
        }
 public StudentsRepository(ICoursesUnitOfWork unitOfWork) : base(unitOfWork)
 {
 }
 public void Setup()
 {
     _unitOfWork  = Factory.CreateCoursesUnitOfWork();
     _transaction = _unitOfWork.BeginTransaction();
     _repository  = Factory.CreateReporsitory <TRepository>(_unitOfWork);
 }
 public TeachersRepository(ICoursesUnitOfWork unitOfWork) : base(unitOfWork)
 {
 }
 public CoursesRepository(ICoursesUnitOfWork unitOfWork) : base(unitOfWork)
 {
 }