Repositório genérico para SQLite-Net no projeto Xamarin
Gostaria de saber se existe uma maneira de escrever um repositório genérico para o meu projeto Xamarin versus escrever um repositório diferente para cada entidade no meu objeto. The XamarinTasky Pro O exemplo tem um repositório para a entidade Tarefa porque essa é a única entidade que possui.
Em meu próprio projeto, tenho mais de uma Entidade; portanto, minha pergunta é como posso tornar o Repositório do Cliente a seguir genérico para que o ProductManager, EmployeeManager, etc. possam usá-lo. Se você souber de um exemplo ou post de um blog, aponte-me para a direção certa
namespace App.DataLayer
{
public class CustomerRepository
{
private ProntoDatabase _db = null;
protected static string DbLocation;
protected static CustomerRepository Me;
static CustomerRepository()
{
Me = new CustomerRepository();
}
protected CustomerRepository()
{
//set the db location;
DbLocation = DatabaseFilePath;
//instantiate the database
_db = new ProntoDatabase(DbLocation);
}
public static string DatabaseFilePath
{
get
{
const string sqliteFilename = "CustomerDB.db3";
var libraryPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path = Path.Combine(libraryPath, sqliteFilename);
return path;
}
}
// CRUD (Create, Read, Update and Delete) methods
public static Customer GetCustomer(int id)
{
return Me._db.GetItem<Customer>(id);
}
public static IEnumerable<Customer> GetCustomers()
{
return Me._db.GetItems<Customer>();
}
public static int SaveCustomer(Customer item)
{
return Me._db.SaveItem(item);
}
public static int DeleteCustomer(int id)
{
return Me._db.DeleteItem<Customer>(id);
}
}