using System; using System.Collections.Generic; using System.Text; namespace FileRepository { /// /// A factory to enable consumers of this package to easily get a specific type of repository. /// public class Factory { /// /// An enum to restrict users to only select valid repository types. /// public enum RepositoryType { /// /// An enum member for storing files on disk. /// Disk, /// /// An enum member for storing files in a MongoDb NoSQL database. /// MongoDb, /// /// An enum member for storing files on AWS S3. /// S3, /// /// An enum member for storing files on a remote drive using SFTP. /// Sftp, /// /// An enum member for storing files in an SQL database. /// Sql, } /// /// Initialise an implementation of IFileRepository based on a selected enum member. /// /// The type of repository to initialise, based on the enum member. /// Returns an initialised repository. public IFileRepository GetFileRepository(RepositoryType repositoryType) { throw new NotImplementedException("This section won't work until another method is set up with at least one repository type."); //IFileRepository fileRepository = // Here we need to get the specific class of repository based on the RepositoryType enum. //return fileRepository; } } }