Files
2024-06-07 11:54:09 +03:00

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();
}
}