Есть куча разных сущностей. Вот диаграмма
И нужно создать репозитории для этих чертят. Вот интерфейс родимый
interface IBaseService<T>:IDisposable
{
AccountModel Get<T>(int id) where T : class, new();
AccountModel GetAll<T>() where T : class, new();
bool Save<T>(AccountModel entity);
bool Delete(int id);
}
А вот пример репозитория сущности AccountModel
class AccountBaseService : IBaseService <AccountModel>
{
List<AccountModel> AllAccountList = new List<AccountModel>();
private AccountModel a;
VideoHosting.AccountModel IBaseService<VideoHosting.AccountModel>.Get<AccountModel>(int id)
{
foreach (var a in AllAccountList)
{
if (a.AccId == id)
{
return a;
}
return a;
}
return a;
}
AccountModel IBaseService<AccountModel>.GetAll<T>()
{
foreach (var a in AllAccountList)
{
return a;
}
return a;
}
bool IBaseService<AccountModel>.Save<T>(AccountModel entity)
{
entity = new AccountModel();
AllAccountList.Add(entity);
return true;
}
bool IBaseService<AccountModel>.Delete(int id)
{
foreach (var a in AllAccountList)
{
if (a.AccId == id)
{
AllAccountList.Remove(a);
}
}
return true;
}
public void Dispose()
{
throw new NotImplementedException();
}
}
Как можно это сделать без повторения кода? Вся проблема в обобщенном листе, не знаю как его определить. Спасибо.