示例#1
0
        public static List <string> get_history_message_to_view(string date_in, string date_out)
        {
            connection_db_open();
            NpgsqlCommand com = new NpgsqlCommand("select nick,message,to_char(date_out, 'dd.mm.yyyy') as myDate, to_char(date_out, 'hh24:mi:ss') as myTime" +
                                                  " from public.history_messages mes" +
                                                  ", public.user_info us where us.id=mes.id " +
                                                  "and date_out::date>=to_date(@i,'dd.mm.yyy') and date_out::date<=to_date(@o,'dd.mm.yyyy') order by date_out", NpgConnection);

            com.Parameters.AddWithValue("i", date_in);
            com.Parameters.AddWithValue("o", date_out);
            NpgsqlDataReader reader;

            reader = com.ExecuteReader();
            List <string> result = new List <string>();

            while (reader.Read())
            {
                try
                {
                    result.Add(reader.GetString(3) + " " + reader.GetString(0) + ":" + reader.GetString(1));
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Считывание истории сообщений " + ex.Message);
                }
            }
            connection_db_close();
            return(result);
        }
示例#2
0
 async void bdConnectPostgr_async()
 {
     await Task.Run(() =>
     {
         try
         {
             DataBasePostgres.create_information_about_user_async(Nick,
                                                                  textBox1.Text, textBox2.Text, Convert.ToInt32(textBox3.Text));
             MessageBox.Show("Информация добавлена!");
         }
         catch (FormatException)
         {
             MessageBox.Show("Введены некорректные данные!");
         }
         catch (Npgsql.PostgresException ex)
         {
             MessageBox.Show("Ошибка соединения с базой данных");
             Logs.LogClass logClass = new Logs.LogClass("DB", "Изменение данных пользователя о себе. Ошибка postgres: " + ex.MessageText);
         }
         catch (Npgsql.NpgsqlException ex)
         {
             MessageBox.Show("Ошибка соединения с базой данных");
             Logs.LogClass logClass = new Logs.LogClass("DB", "Изменение данных пользователя о себе. Ошибка связи: " + ex.Message);
         }
         catch (Exception ex)
         {
             MessageBox.Show("Неизвестная ошибка");
             Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
         }
     }
                    );
 }
示例#3
0
        public static List <string> read_all_nicks_participants()
        {
            connection_db_open();
            NpgsqlCommand com = new NpgsqlCommand("select nick from public.user_info", NpgConnection);

            NpgsqlDataReader reader;

            reader = com.ExecuteReader();
            List <string> result = new List <string>();

            while (reader.Read())
            {
                try
                {
                    result.Add(reader.GetString(0));//Получаем значение из первого столбца! Первый это (0)!
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    Logs.LogClass log = new Logs.LogClass("DB", "Считывание ников ВСЕХ пользователей " + ex.Message);
                }
            }

            connection_db_close();
            return(result);
        }
示例#4
0
文件: logForm.cs 项目: AdvoXS/Chat
        private bool check_valid_textboxes_tabSingUP()
        {
            if (textBox3.Text != "" && textBox3.Text.Length >= 3 &&
                textBox4.Text != "" && textBox4.Text.Length > 5 &&
                textBox5.Text != "" && textBox5.Text.Length > 2 &&
                textBox6.Text != "" && textBox6.Text.Length > 3 &&
                textBox7.Text != "")
            {
                return(true);
            }

            else
            {
                Logs.LogClass log = new Logs.LogClass("System", "Ввод данных регистрации. Неверный ввод полей");
                if (textBox3.Text == "" || textBox3.Text.Length < 3)
                {
                    label14.Visible = true;
                }
                else
                {
                    label14.Visible = false;
                }
                if (textBox4.Text == "" && textBox4.Text.Length < 6)
                {
                    label15.Visible = true;
                }
                else
                {
                    label15.Visible = false;
                }
                if (textBox5.Text == "" && textBox5.Text.Length <= 2)
                {
                    label16.Visible = true;
                }
                else
                {
                    label16.Visible = false;
                }
                if (textBox6.Text == "" && textBox6.Text.Length <= 3)
                {
                    label17.Visible = true;
                }
                else
                {
                    label17.Visible = false;
                }
                if (textBox7.Text == "")
                {
                    label18.Visible = true;
                }
                else
                {
                    label18.Visible = false;
                }
                // MessageBox.Show("Неверный ввод полей.\nЛогин - от 3-х символов\nПароль от 6-ти симолов\nИмя от 2-х символов\nФамилия от 3-х символов\nВозраст только числом!");
                return(false);
            }
        }
示例#5
0
        void get_info_BD()
        {
            List <string> list = null;
            Task          task = new Task(() =>
            {
                try
                {
                    list = DataBasePostgres.get_information_user(nick);
                }
                catch (Npgsql.PostgresException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Получение данных пользователя о себе(из списка пользователей). Ошибка postgres: " + ex.MessageText);
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Получение данных пользователя о себе(из списка пользователей). Ошибка связи: " + ex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Неизвестная ошибка");
                    Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
                }
                if (list.Count > 0 && list != null)
                {
                    Action actVis1True = () => label1.Visible = true;
                    Action actVis2True = () => label2.Visible = true;
                    Action actVis3True = () => label3.Visible = true;
                    Action actVis4True = () => label4.Visible = true;
                    Action actVisFalse = () => label5.Visible = false;
                    Action actLab1Pr   = () => label1.Text = "Nickname: " + list[0];
                    Action actLab2Pr   = () => label2.Text = "First name: " + list[1];
                    Action actLab3Pr   = () => label3.Text = "Second name: " + list[2];
                    Action actLab4Pr   = () => label4.Text = "Age: " + list[3];

                    label5.Invoke(actVisFalse);
                    label1.Invoke(actLab1Pr);
                    label2.Invoke(actLab2Pr);
                    label3.Invoke(actLab3Pr);
                    label4.Invoke(actLab4Pr);
                    label1.Invoke(actVis1True);
                    label2.Invoke(actVis2True);
                    label3.Invoke(actVis3True);
                    label4.Invoke(actVis4True);
                }
                else
                {
                    Action act = () => label5.Text = "Данных о пользователе не обнаружено!";
                    label5.Invoke(act);
                }
            });

            task.Start();
        }
示例#6
0
文件: logForm.cs 项目: AdvoXS/Chat
        private void Button3_Click(object sender, EventArgs e)
        {
            //   MessageBox.Show(System.Diagnostics.Process.GetCurrentProcess().Threads.Count.ToString());

            if (check_valid_textboxes_tabSingUP())
            {
                Security.SecurityClass securityClass = new Security.SecurityClass();
                string[] hash     = securityClass.password_MD5Hash(textBox4.Text);
                string   salt     = hash[0];
                string   hashPass = hash[1];
                try
                {
                    if (!DataBasePostgres.registration_user(textBox3.Text, hashPass, salt, textBox5.Text, textBox6.Text, int.Parse(textBox7.Text)))
                    {
                        label10.Text    = "Такой пользователь уже существует!";
                        label10.Visible = true;
                    }
                    else
                    {
                        label10.Visible   = true;
                        label10.Text      = "Вы успешно зарегистрированы!";
                        label10.ForeColor = Color.Green;
                        button3.Enabled   = false;
                    }
                }
                catch (Npgsql.PostgresException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных регистрации пользвателя. Ошибка postgres: " + ex.Message);
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных регистрации пользвателя. Ошибка связи: " + ex.Message);
                }
                catch (FormatException)
                {
                    MessageBox.Show("Возраст должен быть числом!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Неизвестная ошибка");
                    Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
                }
            }
        }
示例#7
0
        private void Button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "\tЗагружаем данные с сервера...";
            List <string> historyMes = null;
            Task          task       = new Task(() => {
                try
                {
                    historyMes = DataBasePostgres.get_history_message_to_view(dateTimePicker1.Text, dateTimePicker2.Text);
                }
                catch (Npgsql.PostgresException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Получение истории сообщений. Ошибка postgres: " + ex.MessageText);
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Получение истории сообщений. Ошибка связи: " + ex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Неизвестная ошибка");
                    Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
                }
                if (historyMes.Count > 0)
                {
                    Action messNullAction = () => textBox1.Text = "";
                    textBox1.Invoke(messNullAction);

                    for (int i = 0; i < historyMes.Count; i++)
                    {
                        Action messAddRowAction = () => textBox1.Text += historyMes[i] + "\r\n";
                        textBox1.Invoke(messAddRowAction);
                    }
                }
                else
                {
                    Action messNullAction = () => textBox1.Text = "\tДанных о переписках на данный период нет!";
                    textBox1.Invoke(messNullAction);
                }
            });

            task.Start();
        }
示例#8
0
 void get_info_user()
 {
     try
     {
         aboutUserList = DataBasePostgres.get_information_user(Nick);
     }
     catch (Npgsql.PostgresException ex)
     {
         MessageBox.Show("Ошибка соединения с базой данных");
         Logs.LogClass logClass = new Logs.LogClass("DB", "Получение данных пользователя о себе(из списка пользователей). Ошибка postgres: " + ex.MessageText);
     }
     catch (Npgsql.NpgsqlException ex)
     {
         MessageBox.Show("Ошибка соединения с базой данных");
         Logs.LogClass logClass = new Logs.LogClass("DB", "Получение данных пользователя о себе(из списка пользователей). Ошибка связи: " + ex.Message);
     }
     catch (Exception ex)
     {
         MessageBox.Show("Неизвестная ошибка");
         Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
     }
 }
示例#9
0
文件: logForm.cs 项目: AdvoXS/Chat
        private void Button1_Click(object sender, EventArgs e)
        {
            label11.Visible = false;
            label13.Visible = true;
            button1.Enabled = false;
            string returnedString = "";

            label13.Update();
            Thread.Sleep(20);
            try
            {
                returnedString = DataBasePostgres.login_user(textBox1.Text, textBox2.Text);
            }
            catch (Npgsql.PostgresException ex)
            {
                MessageBox.Show("Ошибка соединения с базой данных");
                Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных авторизации пользвателя. Ошибка postgres: " + ex.Message);
            }
            catch (Npgsql.NpgsqlException ex)
            {
                MessageBox.Show("Ошибка соединения с базой данных");
                Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных авторизации пользвателя. Ошибка связи: " + ex.Message);
            }
            if (returnedString != "0" && returnedString != "")
            {
                parentForm = new Form1(this, returnedString);
                parentForm.Show();
                this.Hide();
            }
            else
            {
                label13.Visible = false;
                button1.Enabled = true;
                label11.Visible = true;
            }
        }
示例#10
0
文件: Form1.cs 项目: AdvoXS/Chat
        async private void Listener()
        {
            try
            {
                while (true)
                {
                    Byte[] data;
                    data = udpClient.Receive(ref localIp);

                    formatted_data = FromAes256(data);//Encoding.UTF8.GetString(data);

                    //принятие имени в список участников
                    if (formatted_data != "" && formatted_data[0] == '%' && formatted_data[1] == '&' && formatted_data[2] == 'n' && formatted_data[3] == 'm')
                    {
                        for (int i = 4; i < formatted_data.Length; i++)
                        {
                            tmpName += formatted_data[i];
                        }
                        int indName = -1;
                        indName = listUsers.FindString(tmpName);
                        if (indName == -1)
                        {
                            Action act = () => listUsers.Items.Add(tmpName);
                            listUsers.Invoke(act);
                        }

                        tmpName = "";
                    }
                    //запрос на передачу своего имени
                    else if (formatted_data != "" && formatted_data[0] == 'r' && formatted_data[1] == '@' && formatted_data[2] == 'q' && formatted_data[3] == '#' && formatted_data[4] == 's' && formatted_data[5] == '+' && formatted_data[6] == '+')
                    {
                        sendName();
                    }
                    //удаление из списка участников
                    else if (formatted_data != "" && formatted_data[0] == 'd' && formatted_data[1] == '%' && formatted_data[2] == 'e' && formatted_data[3] == '?' && formatted_data[4] == 'l')
                    {
                        for (int i = 5; i < formatted_data.Length; i++)
                        {
                            tmpName += formatted_data[i];
                        }
                        int indName = -1;
                        indName = listUsers.FindString(tmpName);
                        if (indName != -1)
                        {
                            Action act = () => listUsers.Items.RemoveAt(indName);
                            listUsers.Invoke(act);
                        }
                        tmpName = "";
                    }
                    //вывод обычных данных
                    else if (formatted_data != "")
                    {
                        //парсим сообщение
                        bool   isParseNick  = true;
                        string parseNick    = "";
                        string parseMessage = "";
                        if (formatted_data[0] != '\t')
                        {
                            for (int i = 0; i < formatted_data.Length; i++)
                            {
                                if (isParseNick && formatted_data[i] != ':')
                                {
                                    parseNick += formatted_data[i];
                                }
                                else if (formatted_data[i] == ':')
                                {
                                    isParseNick = false;
                                }
                                else if (!isParseNick && formatted_data[i] != ':')
                                {
                                    parseMessage += formatted_data[i];
                                }
                            }
                            if (tmpstr != "guest")
                            {
                                try //сохраняем сообщение в историю(в таблицу history_messages)
                                {
                                    await Task.Run(() => DataBasePostgres.add_message_user_async(parseNick, Convert.ToString(DateTime.Now), parseMessage));
                                }
                                catch (Npgsql.PostgresException ex)
                                {
                                    MessageBox.Show("Ошибка соединения с базой данных");
                                    Logs.LogClass logClass = new Logs.LogClass("DB", "Сохранение сообщения в базе данных. Ошибка postgres: " + ex.Message);
                                }
                                catch (Npgsql.NpgsqlException ex)
                                {
                                    MessageBox.Show("Ошибка соединения с базой данных");
                                    Logs.LogClass logClass = new Logs.LogClass("DB", "Сохранение сообщения в базе данных. Ошибка связи: " + ex.Message);
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show("Неизвестная ошибка");
                                    Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
                                }
                            }
                        }
                        if (textBox1.Text != "")
                        {
                            Action act = () =>
                            {
                                textBox1.AppendText("\r\n");
                                textBox1.AppendText(formatted_data);
                            };
                            textBox1.Invoke(act);
                            Action act1 = () => textBox3.Focus();
                            textBox3.Invoke(act1);
                        }
                        else
                        {
                            Action act = () => textBox1.AppendText(formatted_data);
                            textBox1.Invoke(act);
                            Action act1 = () => textBox3.Focus();
                            textBox3.Invoke(act1);
                        }
                    }
                }
            }
            catch (System.Net.Sockets.SocketException e)
            {
                if (e.ErrorCode != 10060)
                {
                    delName();
                    udpClient.Close();
                    thread.Abort();
                    thread.Join(5000);
                    thread = null;
                }
                else if (e.ErrorCode == 10060) //если таймаут
                {
                    if (formclosed == false)
                    {
                        Listener();                      //форма не закрыта -> продолжаем приём
                    }
                    else
                    {
                        delName();
                        udpClient.Close();
                        thread.Abort();
                        thread.Join(5000);
                        thread = null;
                    }
                }
            }
        }