130 lines
4.4 KiB
C#
130 lines
4.4 KiB
C#
using Npgsql;
|
||
|
||
namespace NeDvachAPI
|
||
{
|
||
public class DBchat
|
||
{
|
||
// Obtain connection string information from the portal
|
||
//
|
||
private static string Host = "postgres.vdk2ch.ru";
|
||
private static string User = "postgres";
|
||
private static string DBname = "postgres";
|
||
private static string Password = "postgres";
|
||
private static string Port = "5432";
|
||
|
||
public static Post[] DbList()
|
||
{
|
||
// Build connection string using parameters from portal
|
||
Post[] posts = new Post[10];
|
||
int postCount = 0;
|
||
string received = "";
|
||
string connString =
|
||
String.Format(
|
||
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
|
||
Host,
|
||
User,
|
||
DBname,
|
||
Port,
|
||
Password);
|
||
|
||
using (var conn = new NpgsqlConnection(connString))
|
||
{
|
||
|
||
|
||
conn.Open();
|
||
|
||
|
||
using (var command = new NpgsqlCommand("SELECT * FROM (SELECT post_id, substring(post,1,200) FROM dvach ORDER BY post_id DESC limit 10) subquery ORDER BY post_id ASC", conn))
|
||
{
|
||
|
||
var reader = command.ExecuteReader();
|
||
while (reader.Read())
|
||
{
|
||
//received +=(
|
||
//string.Format(
|
||
//"#{0}: {1}" + "\n",
|
||
// reader.GetInt32(0).ToString(),
|
||
//reader.GetString(1)
|
||
//)
|
||
//);
|
||
Post receivedPost = new()
|
||
{
|
||
Date = DateTime.Now,
|
||
Id = reader.GetInt32(0),
|
||
Text = reader.GetString(1)
|
||
};
|
||
posts[postCount] = receivedPost;
|
||
postCount++;
|
||
}
|
||
reader.Close();
|
||
}
|
||
}
|
||
return posts;
|
||
}
|
||
|
||
public static void DbUpdate(string id, string text)
|
||
{
|
||
// Build connection string using parameters from portal
|
||
string connString =
|
||
String.Format(
|
||
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
|
||
Host,
|
||
User,
|
||
DBname,
|
||
Port,
|
||
Password);
|
||
|
||
using (var conn = new NpgsqlConnection(connString))
|
||
{
|
||
|
||
//Console.Out.WriteLine("Opening connection");
|
||
conn.Open();
|
||
|
||
using (var command = new NpgsqlCommand("UPDATE dvach " +
|
||
"SET post = @postText WHERE post_id = @ID", conn))
|
||
{
|
||
command.Parameters.AddWithValue("ID", int.Parse(id));
|
||
command.Parameters.AddWithValue("postText", text);
|
||
|
||
int nRows = command.ExecuteNonQuery();
|
||
Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));
|
||
}
|
||
}
|
||
|
||
Console.WriteLine("Данные обновлены!");
|
||
Console.ReadLine();
|
||
}
|
||
public static void SendPost(Post postToSend)
|
||
{
|
||
// Build connection string using parameters from portal
|
||
//
|
||
string connString =
|
||
String.Format(
|
||
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
|
||
Host,
|
||
User,
|
||
DBname,
|
||
Port,
|
||
Password);
|
||
|
||
using (var conn = new NpgsqlConnection(connString))
|
||
{
|
||
|
||
Console.Out.WriteLine("Opening connection");
|
||
conn.Open();
|
||
|
||
using (var command = new NpgsqlCommand("INSERT INTO dvach " +
|
||
"(post_id, post) VALUES (DEFAULT, @postText)", conn))
|
||
{
|
||
command.Parameters.AddWithValue("postText", postToSend.Text);
|
||
|
||
int nRows = command.ExecuteNonQuery();
|
||
Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));
|
||
}
|
||
}
|
||
|
||
Console.WriteLine("С добавлением закончено");
|
||
}
|
||
}
|
||
}
|