34 lines
1.0 KiB
C#
34 lines
1.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace PaymentLogs.Repositories
|
|
{
|
|
internal abstract class Repo<K, V>
|
|
{
|
|
// в словаре хранится кеш данных
|
|
protected Dictionary<K, V> _data = new Dictionary<K, V>();
|
|
|
|
// загрузка данных из базы данных
|
|
public abstract void Load();
|
|
// получение всех данных из кеша
|
|
public virtual List<V> All()
|
|
{
|
|
return _data.Values.ToList();
|
|
}
|
|
// получение конкретного экземпляра по id/ключу
|
|
public virtual V Get(K key) { return _data[key]; }
|
|
//обновление данных в кеше
|
|
public virtual void Update(K key, V value)
|
|
{
|
|
_data[key] = value;
|
|
}
|
|
// сохранение данных из кеша в базу данных
|
|
public abstract void Save();
|
|
}
|
|
|
|
|
|
}
|