123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using MySql.Data.MySqlClient;
- namespace HyperCube
- {
- public class MySQLConnector
- {
- private MySQLConnector(){ }
- private readonly string Server = "dmatter.net";
- private readonly string DatabaseName = "documents";
- private readonly string UserName = "promsystem";
- private readonly string Password = "PrmSystem212";
- MySqlCommand SQLcom;
- public MySqlConnection Connection { get; set; }
- private static MySQLConnector _instance = null;
- public static MySQLConnector Instance()
- {
- if (_instance == null)
- _instance = new MySQLConnector();
- return _instance;
- }
- public bool IsConnect()
- {
- if (Connection == null)
- {
- string connstring = $"Server={Server}; database={DatabaseName}; UID={UserName}; password={Password}";
- Connection = new MySqlConnection(connstring);
- Connection.Open();
- }
- else if (Connection.State != System.Data.ConnectionState.Open)
- Connection.Open();
- return true;
- }
- public long SQLInsert(string sql)
- {
- long lastID = 0;
- bool connected = IsConnect();
- if (connected)
- {
- SQLcom = new(sql, Connection);
- SQLcom.ExecuteNonQuery();
- SQLcom.Dispose();
- lastID = SQLcom.LastInsertedId;
- }
- else
- Console.WriteLine("Not connected to DB.");
- return lastID;
- }
- public async Task<Dictionary<int, Models.SmartContract>> SQLSelectContracts()
- {
- string sql = "select * from smart_contracts";
- Dictionary<int, Models.SmartContract> contracts = new();
- bool connected = IsConnect();
- if (connected)
- {
- SQLcom = new(sql, Connection);
- MySqlDataReader rdr = SQLcom.ExecuteReader();
- while (rdr.Read())
- {
- Models.SmartContract contract = new();
- contract.id = rdr.GetInt32(0);
- contract.Code = rdr.GetString(1);
- contract.ByteCode = rdr.GetString(2);
- contract.Name = rdr.GetString(3);
- if (!contracts.ContainsKey(contract.id))
- contracts.Add(contract.id, contract);
- }
- await Task.WhenAll();
- rdr.Close();
- return contracts;
- }
- else
- Console.WriteLine("Not connected to DB.");
- return null;
- }
- public async Task<Dictionary<int, Models.ArticleModel>> SQLSelectArticles(string sql)
- {
- Dictionary<int, Models.ArticleModel> articleModels = new();
- Models.ArticleModel articleModel;
- bool connected = IsConnect();
- if (connected)
- {
- SQLcom = new(sql, Connection);
- MySqlDataReader rdr = SQLcom.ExecuteReader();
- while (rdr.Read())
- {
- //Console.WriteLine("{0} {1} {2} {3} {4}", rdr.GetInt32(0), rdr.GetString(1),
- // rdr.GetString(2), rdr.GetDateTime(3), rdr.GetString(4));
- articleModel = new();
- articleModel.Filename = rdr.GetString(1);
- articleModel.Name = rdr.GetString(2);
- articleModel.PublishDate = rdr.GetDateTime(3);
- articleModel.Authors = rdr.GetString(4);
- articleModels.Add(rdr.GetInt32(0), articleModel);
- }
- await Task.WhenAll();
- rdr.Close();
- //Console.WriteLine("End reading DB");
- return articleModels;
- }
- else
- Console.WriteLine("Not connected to DB.");
- return null;
- }
- public async Task<Models.ArticleModel> SQLSelectArticle(string sql)
- {
- Models.ArticleModel articleModel = new();
- bool connected = IsConnect();
- if (connected)
- {
- SQLcom = new(sql, Connection);
- MySqlDataReader rdr = SQLcom.ExecuteReader();
- while (rdr.Read()) //id, filename, article_name, authors, date_publish, annotation, keywords
- {
- articleModel.Filename = rdr.GetString(1);
- articleModel.Name = rdr.GetString(2);
- articleModel.Authors = rdr.GetString(3);
- articleModel.PublishDate = rdr.GetDateTime(4);
- articleModel.Annotation = rdr.GetString(5);
- articleModel.Keywords = rdr.GetString(6);
- }
- await Task.WhenAll();
- rdr.Close();
- return articleModel;
- }
- else
- Console.WriteLine("Not connected to DB.");
- return null;
- }
- public uint SQLGetID(string sql)
- {
- bool connected = IsConnect();
- if (connected)
- {
- SQLcom = new(sql, Connection);
- object obj = SQLcom.ExecuteScalar();
- return (uint)obj;
- }
- else return 0;
- }
- public void Close()
- {
- Connection.Close();
- }
- }
- }
|