Inheritance: IRepository
        private IRepository CreateSerialisableRepository(string name, PackageOperationType operationType, Func<IPackageRepository> packageRepositoryFactory, int id)
        {
            Argument.IsNotNullOrEmpty(() => name);
            Argument.IsNotNull(() => packageRepositoryFactory);

            var repository = new Repository
            {
                Id = id,
                Name = name,
                OperationType = operationType
            };
            
            _idTupleDictionary[id] = new Tuple<IRepository, IPackageRepository>(repository, packageRepositoryFactory());

            return repository;
        }