using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace NzbDrone.Core.Datastore { public interface IBasicRepository { List All(); TModel Get(int rootFolderId); TModel Add(TModel rootFolder); void Delete(int rootFolderId); } public abstract class BasicRepository : IBasicRepository where TModel : BaseRepositoryModel, new() { public BasicRepository(EloqueraDb eloqueraDb) { EloqueraDb = eloqueraDb; } protected EloqueraDb EloqueraDb { get; private set; } public List All() { return EloqueraDb.AsQueryable().ToList(); } public TModel Get(int id) { return EloqueraDb.AsQueryable().Single(c => c.Id == id); } public TModel Add(TModel model) { return EloqueraDb.Insert(model); } public void Delete(int id) { var itemToDelete = Get(id); EloqueraDb.Delete(itemToDelete); } } }