2024-05-08 00:48:57 +04:00
|
|
|
|
using MedicalDatabaseContracts;
|
|
|
|
|
using MedicalDatabaseContracts.Models;
|
|
|
|
|
using Npgsql;
|
|
|
|
|
|
|
|
|
|
namespace MedicalPostgresqlDatabase
|
|
|
|
|
{
|
|
|
|
|
public abstract class AbstractPostgresqlStorage<T> : IStorage<T> where T : AbstractModel
|
|
|
|
|
{
|
2024-05-08 02:34:54 +04:00
|
|
|
|
public virtual void Delete(int id)
|
|
|
|
|
{
|
|
|
|
|
long elapsedMilliseconds;
|
|
|
|
|
Delete(id, out elapsedMilliseconds);
|
|
|
|
|
}
|
|
|
|
|
public abstract void Delete(int id, out long elapsedMilliseconds);
|
|
|
|
|
public virtual T? Get(int id)
|
|
|
|
|
{
|
|
|
|
|
long elapsedMilliseconds;
|
|
|
|
|
return Get(id, out elapsedMilliseconds);
|
|
|
|
|
}
|
|
|
|
|
public abstract T? Get(int id, out long elapsedMilliseconds);
|
|
|
|
|
public virtual List<T> GetAll()
|
|
|
|
|
{
|
|
|
|
|
long elapsedMilliseconds;
|
|
|
|
|
return GetAll(out elapsedMilliseconds);
|
|
|
|
|
}
|
|
|
|
|
public abstract List<T> GetAll(out long elapsedMilliseconds);
|
|
|
|
|
public virtual void Insert(T item)
|
|
|
|
|
{
|
|
|
|
|
long elapsedMilliseconds;
|
|
|
|
|
Insert(item, out elapsedMilliseconds);
|
|
|
|
|
}
|
|
|
|
|
public abstract void Insert(T item, out long elapsedMilliseconds);
|
|
|
|
|
public virtual void Update(T item)
|
|
|
|
|
{
|
|
|
|
|
long elapsedMilliseconds;
|
|
|
|
|
Update(item, out elapsedMilliseconds);
|
|
|
|
|
}
|
|
|
|
|
public abstract void Update(T item, out long elapsedMilliseconds);
|
|
|
|
|
|
2024-05-08 00:48:57 +04:00
|
|
|
|
protected NpgsqlConnection GetConnection()
|
|
|
|
|
{
|
2024-05-08 01:46:11 +04:00
|
|
|
|
return new NpgsqlConnection("Host=127.0.0.1;Port=5555;Username=postgres;Database=medicalbase;Password=postgres");
|
2024-05-08 00:48:57 +04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|