Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 18.08 KB | None | 0 0
  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. using MySql.Data.MySqlClient;
  5. using System.Collections;
  6. using System.Linq;
  7. using System.Text;
  8.  
  9. /*
  10.             command =connection.CreateCommand();
  11.             command.CommandText = "INSERT INTO log(userid,message,date) VALUES(1,'Hello there',NOW());";
  12.             MySqlDataReader reader;
  13.             reader = command.ExecuteReader();
  14.             Console.WriteLine("Executed Query: " + reader);
  15.  */
  16. namespace Lightchat_server
  17. {
  18.     public class SQL
  19.     {
  20.         private MySqlConnection connection = new MySqlConnection();
  21.         private MySqlDataAdapter data = new MySqlDataAdapter();
  22.         private MySqlCommand command = new MySqlCommand();
  23.         MySqlDataReader reader;
  24.  
  25.  
  26.         public void connect(Boolean flag)
  27.         {
  28.             if (flag) { Console.WriteLine("Connecting to MySQL server @ localhost"); }
  29.             //Set connection string
  30.             connection.ConnectionString =
  31.                 "server=localhost;"
  32.                 + "database=lightmunnas;"
  33.                 + "uid=root;"
  34.                 + "password=redrun11;";
  35.             //Connect
  36.             connection.Open();
  37.             if (flag) { Console.WriteLine("    >Connected"); }
  38.         }
  39.  
  40.         public void disconnect()
  41.         {
  42.             try
  43.             {
  44.                 connection.Dispose();
  45.                 connection.Close();
  46.             }
  47.             catch
  48.             {
  49.  
  50.             }
  51.         }
  52.  
  53.         public void userLogin(String userName) // on client connection
  54.         {
  55.             command = connection.CreateCommand();
  56.             command.CommandText = "SELECT * FROM users WHERE (username = '" + userName + "');";
  57.             reader = command.ExecuteReader();
  58.  
  59.             if (reader.Read() != false)//Is the client name already in the database?
  60.             {
  61.                 reader.Close(); //close reader
  62.  
  63.                 command.CommandText = "UPDATE users SET lastlogin=NOW() WHERE username ='" + userName + "';";
  64.                 command.ExecuteNonQuery();
  65.             }
  66.             else //add username to the database
  67.             {
  68.                 reader.Close(); //close reader
  69.  
  70.                 Console.WriteLine("    >Clients first time connecting, adding to database");
  71.                 command.CommandText = "INSERT INTO users(username,lastlogin,sent) VALUES('" + userName + "',NOW(),0);";
  72.                 command.ExecuteNonQuery();
  73.             }
  74.         }
  75.  
  76.         public void createChannel(String name, String password)
  77.         {
  78.             command = connection.CreateCommand();
  79.             command.CommandText = "INSERT INTO channels(channelname,channelpassword) VALUES('" + name + "','" + password + "');";
  80.             command.ExecuteNonQuery();
  81.         }
  82.  
  83.         /*public int[] getChannelsByUser(String userName)
  84.         {
  85.             int[] channels;
  86.             command = connection.CreateCommand();
  87.             //Get user id
  88.             command.CommandText = "SELECT id FROM users WHERE username='" + userName + "';";
  89.             reader = command.ExecuteReader();
  90.             reader.Read();
  91.             String id = reader.GetValue(0).ToString();
  92.             reader.Close();
  93.  
  94.             //get channels by ID
  95.             command.CommandText = "SELECT channelid FROM channeluser WHERE userid='" + id + "';";
  96.             reader = command.ExecuteReader();
  97.             channels = new int[reader.ge];
  98.             int count = 0;
  99.             while (reader.Read())
  100.             {
  101.                 channels[count] = (int)reader["channelid"];
  102.                 count++;
  103.             }
  104.             return (channels);
  105.         }*/
  106.  
  107.         public void newMessage(String userName, String msg)
  108.         {
  109.             command = connection.CreateCommand();
  110.             command.CommandText = "SELECT id FROM users WHERE username='" + userName + "';";
  111.             reader = command.ExecuteReader();
  112.             reader.Read();
  113.             String id = reader.GetValue(0).ToString(); // get id
  114.             reader.Close();
  115.  
  116.             command.CommandText = "INSERT INTO log(userid,message,date) VALUES(" + id + ",'" + msg + "',NOW());";
  117.             command.ExecuteNonQuery();
  118.             command.CommandText = "UPDATE users SET sent = sent + 1 WHERE id=" + id + ";";
  119.             command.ExecuteNonQuery();
  120.         }
  121.  
  122.         public string getLog(String input)
  123.         {
  124.             try
  125.             {
  126.                 String[] arguments = input.Split('-');
  127.  
  128.                 String users = null;
  129.                 bool usersb = false;
  130.                 String date = null;
  131.                 bool dateb = false;
  132.  
  133.                 foreach (string argument in arguments)
  134.                 {
  135.                     if (argument.Substring(0, 1) == "u")
  136.                     {
  137.                         String[] s;
  138.                         String noArg = argument.Substring(argument.IndexOf('u') + 1);
  139.                         if (argument.Contains(','))
  140.                         {
  141.  
  142.                             s = noArg.Split(',');
  143.                             users = "users.username='" + s[0].Trim() + "'";
  144.  
  145.                             for (int i = 1; i < s.Length; i++)
  146.                             {
  147.                                 users += " OR users.username='" + s[i].Trim() + "'";
  148.                             }
  149.  
  150.                         }
  151.                         else
  152.                         {
  153.                             users = "users.username='" + noArg.Trim() + "'";
  154.                         }
  155.                         usersb = true;
  156.  
  157.                     }
  158.                     else if (argument.Substring(0, 1) == "d")
  159.                     {
  160.                         String noArg = argument.Substring(argument.IndexOf('d') + 1).Trim();
  161.                         dateb = true;
  162.                         if (argument.Contains(','))
  163.                         {
  164.                             String[] d;
  165.                             int argCount = 0;
  166.                             d = noArg.Split(',');
  167.                             foreach (String dt in d)
  168.                             {
  169.                                 if (dt.Contains('*'))
  170.                                 {
  171.                                     String[] dtsplit = dt.Split('*');
  172.                                     foreach (String dts in dtsplit)
  173.                                     {
  174.                                         dts.Trim();
  175.                                     }
  176.                                     if (argCount == 0)
  177.                                     {
  178.                                         date += "log.date BETWEEN CAST '" + dtsplit[0] + "00' AS DATETIME AND CAST'" + dtsplit[1] + "00' DATETIME";
  179.                                         argCount++;
  180.                                     }
  181.                                     else
  182.                                     {
  183.                                         date += "OR log.date BETWEEN CAST '" + dtsplit[0] + "00' DATETIME AND CAST '" + dtsplit[1] + "00' DATETIME";
  184.                                     }
  185.  
  186.                                 }
  187.                                 else
  188.                                 {
  189.                                     if (argCount == 0)
  190.                                     {
  191.                                         date += "log.date BETWEEN CAST '" + dt + "00' DATETIME AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  192.                                         argCount++;
  193.                                     }
  194.                                     else
  195.                                     {
  196.                                         date += " OR log.date BETWEEN '" + dt + "00' AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  197.                                     }
  198.                                 }
  199.                             }
  200.                         }
  201.                         else
  202.                         {
  203.                             int argCount = 0;
  204.                             String d = noArg;
  205.                             if (d.Contains('*'))
  206.                             {
  207.                                 String[] dtsplit = d.Split('*');
  208.                                 foreach (String dts in dtsplit)
  209.                                 {
  210.                                     dts.Trim();
  211.                                 }
  212.                                 if (argCount == 0)
  213.                                 {
  214.                                     date += "log.date BETWEEN '" + dtsplit[0] + "00' AND '20" + dtsplit[1] + "'";
  215.                                     argCount++;
  216.                                 }
  217.                                 else
  218.                                 {
  219.                                     date += "OR log.date BETWEEN '" + dtsplit[0] + "00' AND '20" + dtsplit[1] + "'";
  220.                                 }
  221.  
  222.                             }
  223.                             else
  224.                             {
  225.                                 if (argCount == 0)
  226.                                 {
  227.                                     date += "log.date BETWEEN '" + d + "00' AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  228.                                     argCount++;
  229.                                 }
  230.                                 else
  231.                                 {
  232.                                     date += " OR log.date BETWEEN '" + d + "'00 AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  233.                                 }
  234.                             }
  235.                         }
  236.                     }
  237.  
  238.                 }
  239.                 String args = "SELECT users.username, log.message, log.date FROM log INNER JOIN users ON users.id=log.userid WHERE ";
  240.                 if (!usersb && dateb)
  241.                 {
  242.                     args += date;
  243.                 }
  244.                 else if (usersb && !dateb)
  245.                 {
  246.                     args += users;
  247.                 }
  248.                 else
  249.                 {
  250.                     args += users + " AND " + date;
  251.                 }
  252.                 args += " ORDER BY log.date ASC;";
  253.  
  254.  
  255.  
  256.                 String data = null;
  257.                 Console.WriteLine(args);
  258.                 Console.WriteLine();
  259.  
  260.                 command = connection.CreateCommand();
  261.                 command.CommandText = args;
  262.                 reader = command.ExecuteReader();
  263.  
  264.                 while (reader.Read())
  265.                 {
  266.                     data += "(" + reader["date"].ToString() + ") <" + reader["username"].ToString() + "> " + reader["message"].ToString() + Environment.NewLine;
  267.                 }
  268.  
  269.                 reader.Close();
  270.  
  271.                 return (data);
  272.  
  273.             }
  274.             catch (Exception ex)
  275.             {
  276.                 Console.WriteLine("    >/log ERROR: " + ex.Message);
  277.                 return (null);
  278.  
  279.             }
  280.         }
  281.  
  282.         public string getFileLog(String input)
  283.         {
  284.             try
  285.             {
  286.                 String[] arguments = input.Split('-');
  287.  
  288.                 String users = null;
  289.                 bool usersb = false;
  290.                 String date = null;
  291.                 bool dateb = false;
  292.  
  293.                 foreach (string argument in arguments)
  294.                 {
  295.                     if (argument.Substring(0, 1) == "u")
  296.                     {
  297.                         String[] s;
  298.                         String noArg = argument.Substring(argument.IndexOf('u') + 1);
  299.                         if (argument.Contains(','))
  300.                         {
  301.  
  302.                             s = noArg.Split(',');
  303.                             users = "users.username='" + s[0].Trim() + "'";
  304.  
  305.                             for (int i = 1; i < s.Length; i++)
  306.                             {
  307.                                 users += " OR users.username='" + s[i].Trim() + "'";
  308.                             }
  309.  
  310.                         }
  311.                         else
  312.                         {
  313.                             users = "users.username='" + noArg.Trim() + "'";
  314.                         }
  315.                         usersb = true;
  316.  
  317.                     }
  318.                     else if (argument.Substring(0, 1) == "d")
  319.                     {
  320.                         String noArg = argument.Substring(argument.IndexOf('d') + 1).Trim();
  321.                         dateb = true;
  322.                         if (argument.Contains(','))
  323.                         {
  324.                             String[] d;
  325.                             int argCount = 0;
  326.                             d = noArg.Split(',');
  327.                             foreach (String dt in d)
  328.                             {
  329.                                 if (dt.Contains('*'))
  330.                                 {
  331.                                     String[] dtsplit = dt.Split('*');
  332.                                     foreach (String dts in dtsplit)
  333.                                     {
  334.                                         dts.Trim();
  335.                                     }
  336.                                     if (argCount == 0)
  337.                                     {
  338.                                         date += "filelog.date BETWEEN CAST '" + dtsplit[0] + "00' AS DATETIME AND CAST'" + dtsplit[1] + "00' DATETIME";
  339.                                         argCount++;
  340.                                     }
  341.                                     else
  342.                                     {
  343.                                         date += "OR filelog.date BETWEEN CAST '" + dtsplit[0] + "00' DATETIME AND CAST '" + dtsplit[1] + "00' DATETIME";
  344.                                     }
  345.  
  346.                                 }
  347.                                 else
  348.                                 {
  349.                                     if (argCount == 0)
  350.                                     {
  351.                                         date += "filelog.date BETWEEN CAST '" + dt + "00' DATETIME AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  352.                                         argCount++;
  353.                                     }
  354.                                     else
  355.                                     {
  356.                                         date += " OR filelog.date BETWEEN '" + dt + "00' AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  357.                                     }
  358.                                 }
  359.                             }
  360.                         }
  361.                         else
  362.                         {
  363.                             int argCount = 0;
  364.                             String d = noArg;
  365.                             if (d.Contains('*'))
  366.                             {
  367.                                 String[] dtsplit = d.Split('*');
  368.                                 foreach (String dts in dtsplit)
  369.                                 {
  370.                                     dts.Trim();
  371.                                 }
  372.                                 if (argCount == 0)
  373.                                 {
  374.                                     date += "filelog.date BETWEEN '" + dtsplit[0] + "00' AND '20" + dtsplit[1] + "'";
  375.                                     argCount++;
  376.                                 }
  377.                                 else
  378.                                 {
  379.                                     date += "OR filelog.date BETWEEN '" + dtsplit[0] + "00' AND '20" + dtsplit[1] + "'";
  380.                                 }
  381.  
  382.                             }
  383.                             else
  384.                             {
  385.                                 if (argCount == 0)
  386.                                 {
  387.                                     date += "filelog.date BETWEEN '" + d + "00' AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  388.                                     argCount++;
  389.                                 }
  390.                                 else
  391.                                 {
  392.                                     date += " OR filelog.date BETWEEN '" + d + "'00 AND DATE_ADD(CAST('" + d + "00' AS datetime), INTERVAL +5 MINUTE)";
  393.                                 }
  394.                             }
  395.                         }
  396.                     }
  397.  
  398.                 }
  399.                 String args = "SELECT users.username, filelog.filename, filelog.size, filelog.date FROM filelog INNER JOIN users ON users.id=filelog.userid WHERE ";
  400.                 if (!usersb && dateb)
  401.                 {
  402.                     args += date;
  403.                 }
  404.                 else if (usersb && !dateb)
  405.                 {
  406.                     args += users;
  407.                 }
  408.                 else
  409.                 {
  410.                     args += users + " AND " + date;
  411.                 }
  412.                 args += " ORDER BY log.date ASC;";
  413.  
  414.  
  415.  
  416.                 String data = null;
  417.                 Console.WriteLine(args);
  418.                 Console.WriteLine();
  419.  
  420.                 command = connection.CreateCommand();
  421.                 command.CommandText = args;
  422.                 reader = command.ExecuteReader();
  423.  
  424.                 while (reader.Read())
  425.                 {
  426.                     data += "(" + reader["date"].ToString() + ") " + reader["username"].ToString() + " sent " + reader["filename"].ToString() + " which is " + reader["size"].ToString() + " bytes." + Environment.NewLine;
  427.                 }
  428.  
  429.                 reader.Close();
  430.  
  431.                 return (data);
  432.  
  433.             }
  434.             catch (Exception ex)
  435.             {
  436.                 Console.WriteLine("    >/log ERROR: " + ex.Message);
  437.                 return (null);
  438.  
  439.             }
  440.         }
  441.  
  442.         public void fileTransfer(String userName,String toUser, String fileName, int fileSize)
  443.         {
  444.             command = connection.CreateCommand();
  445.             command.CommandText = "SELECT id FROM users WHERE username='" + userName + "';";
  446.             reader = command.ExecuteReader();
  447.             reader.Read();
  448.             String id = reader.GetValue(0).ToString(); // get id
  449.             reader.Close();
  450.  
  451.             command = connection.CreateCommand();
  452.             command.CommandText = "INSERT INTO filetransfers(userid,size,filename,time) VALUES('" + id + "','" + fileSize + "','" + fileName + "',NOW());";
  453.             command.ExecuteNonQuery();
  454.         }
  455.     }
  456. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement