2024-05-13 21:34:38 +04:00
|
|
|
|
using SYBDDatabaseImplement.Models;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2024-05-13 21:44:31 +04:00
|
|
|
|
using Npgsql;
|
2024-05-13 21:34:38 +04:00
|
|
|
|
|
|
|
|
|
namespace SYBDDatabaseImplement
|
|
|
|
|
{
|
|
|
|
|
public class SYBDDatabase : DbContext
|
|
|
|
|
{
|
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
|
|
|
{
|
|
|
|
|
if (optionsBuilder.IsConfigured == false)
|
|
|
|
|
{
|
2024-05-13 21:44:31 +04:00
|
|
|
|
optionsBuilder.UseNpgsql(@"Host=192.168.50.49;Database=postgres;Username=postgres;");
|
2024-05-13 21:34:38 +04:00
|
|
|
|
}
|
|
|
|
|
base.OnConfiguring(optionsBuilder);
|
|
|
|
|
}
|
2024-05-13 21:44:31 +04:00
|
|
|
|
private NpgsqlConnection GetConnection()
|
|
|
|
|
{
|
|
|
|
|
return new NpgsqlConnection("Host=192.168.50.49;Database=postgres;Username=postgres;");
|
|
|
|
|
}
|
2024-05-13 21:34:38 +04:00
|
|
|
|
|
2024-05-13 21:44:31 +04:00
|
|
|
|
public virtual DbSet<Auto> auto { set; get; }
|
2024-05-13 21:34:38 +04:00
|
|
|
|
|
|
|
|
|
public virtual DbSet<Client> client { set; get; }
|
|
|
|
|
|
|
|
|
|
public virtual DbSet<Insurance> insurance{ set; get; }
|
|
|
|
|
|
|
|
|
|
public virtual DbSet<Order> order { set; get; }
|
|
|
|
|
public virtual DbSet<Worker> worker { set; get; }
|
2024-05-13 21:44:31 +04:00
|
|
|
|
|
|
|
|
|
public List<Sequence> GetSequences()
|
|
|
|
|
{
|
|
|
|
|
List<Sequence> sequences = new List<Sequence>();
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT sequencename, last_value " +
|
|
|
|
|
"FROM pg_sequences " +
|
|
|
|
|
"WHERE sequencename = 'worker_id_seq'", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
sequences.Add(new Sequence
|
|
|
|
|
{
|
|
|
|
|
Id = "worker",
|
|
|
|
|
Count = reader.GetInt32(1)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT sequencename, last_value " +
|
|
|
|
|
"FROM pg_sequences " +
|
|
|
|
|
"WHERE sequencename = 'auto_id_seq'", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
sequences.Add(new Sequence
|
|
|
|
|
{
|
|
|
|
|
Id = "auto",
|
|
|
|
|
Count = reader.GetInt32(1)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT sequencename, last_value " +
|
|
|
|
|
"FROM pg_sequences " +
|
|
|
|
|
"WHERE sequencename = 'client_id_seq'", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
sequences.Add(new Sequence
|
|
|
|
|
{
|
|
|
|
|
Id = "client",
|
|
|
|
|
Count = reader.GetInt32(1)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT sequencename, last_value " +
|
|
|
|
|
"FROM pg_sequences " +
|
|
|
|
|
"WHERE sequencename = 'insurance_id_seq'", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
sequences.Add(new Sequence
|
|
|
|
|
{
|
|
|
|
|
Id = "insurance",
|
|
|
|
|
Count = reader.GetInt32(1)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT sequencename, last_value " +
|
|
|
|
|
"FROM pg_sequences " +
|
|
|
|
|
"WHERE sequencename = 'order_id_seq'", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
sequences.Add(new Sequence
|
|
|
|
|
{
|
|
|
|
|
Id = "order",
|
|
|
|
|
Count = reader.GetInt32(1)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return sequences;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-13 21:34:38 +04:00
|
|
|
|
}
|