Initial commit
This commit is contained in:
241
Mip/frmChat.cs
Normal file
241
Mip/frmChat.cs
Normal file
@@ -0,0 +1,241 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Mip
|
||||
{
|
||||
public partial class frmChat : Form
|
||||
{
|
||||
public frmChat()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
string idUserKomu = "0";
|
||||
string idUserOd = "0";
|
||||
DateTime maxDateTime = DateTime.MinValue;
|
||||
//float pocet = 0;
|
||||
private void dataGridView3_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
|
||||
idUserKomu = dataGridView3.Rows[dataGridView3.CurrentRow.Index].Cells["IDUsers"].Value.ToString();
|
||||
idUserOd = classUser.ID.ToString();
|
||||
|
||||
textBox3.Enabled = true;
|
||||
label1.Enabled = true;
|
||||
povolitrefresh = true;
|
||||
classUser.IndexChat = dataGridView3.CurrentRow.Index;
|
||||
refreshChatUsers();
|
||||
refreshListView();
|
||||
}
|
||||
|
||||
private void frmChat_Load(object sender, EventArgs e)
|
||||
{
|
||||
refreshChatUsers();
|
||||
|
||||
listView2.Columns.Add("Smer", 25,HorizontalAlignment.Center);
|
||||
listView2.Columns.Add("DatumCas", 80,HorizontalAlignment.Left);
|
||||
listView2.Columns.Add("Text", 350,HorizontalAlignment.Left);
|
||||
listView2.HeaderStyle = ColumnHeaderStyle.None;
|
||||
dataGridView3.ClearSelection();
|
||||
|
||||
string cmd = "SELECT IFNULL(MAX(`DatumCas`),0) AS `posledny` FROM `mip`.`tabchat` WHERE `Komu` = " + classUser.ID.ToString() + ";";
|
||||
string strPoslednyDatum;
|
||||
classSQL.SQL(cmd, out strPoslednyDatum);
|
||||
if (strPoslednyDatum != "0") maxDateTime = Convert.ToDateTime(strPoslednyDatum);
|
||||
|
||||
Timer refresh = new Timer();
|
||||
refresh.Enabled = true;
|
||||
refresh.Interval = 1000;
|
||||
refresh.Tick += new System.EventHandler(refresh_Tick);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void refresh_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (dataGridView3.SelectedRows.Count > 0)
|
||||
{
|
||||
refreshListView();
|
||||
//refreshChatUsers();
|
||||
}
|
||||
|
||||
}
|
||||
//int selectedRow;
|
||||
private void refreshChatUsers()
|
||||
{
|
||||
/*
|
||||
SELECT CONCAT(IFNULL(`Titul`,''), ' ', `Priezvisko`, ' ', `Meno`) AS Meno,
|
||||
`OnlineStatus`,
|
||||
`IDUsers`
|
||||
FROM `tabusers` ORDER BY `OnlineStatus` DESC, `Priezvisko`;
|
||||
|
||||
|
||||
*/
|
||||
|
||||
string cmd = @"SELECT CONCAT(IFNULL(`Titul`,''), ' ', `Priezvisko`, ' ', `Meno`) AS Meno,
|
||||
`OnlineStatus`,
|
||||
`IDUsers`,
|
||||
IF((SELECT COUNT(`Od`) FROM `tabchat` WHERE(`Od` = `tabusers`.IDUsers AND `Komu` = " + classUser.ID.ToString() + @" AND `tabchat`.`Status` = 'Neprečítaná'))=0,'False','True') AS NoveSpravy
|
||||
FROM `tabusers` ORDER BY `OnlineStatus` DESC, `Priezvisko`;";
|
||||
|
||||
DataTable tblChat = new DataTable();
|
||||
classSQL.SQL(cmd, out tblChat);
|
||||
|
||||
// vymaze uzivatela aby nemohol posielat spravy sam sebe
|
||||
DataRow[] drr = tblChat.Select("IDUsers=' " + classUser.ID.ToString() + " ' ");
|
||||
foreach (var row in drr) row.Delete();
|
||||
|
||||
dataGridView3.DataSource = tblChat;
|
||||
dataGridView3.Columns["IDUsers"].Visible = false;
|
||||
dataGridView3.Columns["Meno"].HeaderText = "Meno";
|
||||
dataGridView3.Columns["OnlineStatus"].HeaderText = "Status";
|
||||
dataGridView3.Columns["NoveSpravy"].Visible = false;//pridane aby sme mohly oznacit od koho ma uzivatel nove spravy
|
||||
dataGridView3.AutoResizeColumns();
|
||||
dataGridView3.Columns["Meno"].Width = 125;
|
||||
|
||||
dataGridView3.ClearSelection();
|
||||
if (classUser.IndexChat <= dataGridView3.Rows.Count - 1) dataGridView3.Rows[classUser.IndexChat].Selected = true;
|
||||
else if (dataGridView3.Rows.Count != 0) dataGridView3.Rows[dataGridView3.Rows.Count - 1].Selected = true;
|
||||
|
||||
}
|
||||
|
||||
private void refreshListView()
|
||||
{
|
||||
string cmd = "SELECT IFNULL(MAX(`DatumCas`),0) AS `posledny` FROM `mip`.`tabchat` WHERE `Komu` = " + classUser.ID.ToString() + ";";
|
||||
string strposlednyDatumNovy;
|
||||
classSQL.SQL(cmd, out strposlednyDatumNovy);
|
||||
DateTime novyHladanyMaxDateTime = DateTime.MinValue;
|
||||
//if (strposlednyDatumNovy != "0" || strposlednyDatumNovy !=null) novyHladanyMaxDateTime = Convert.ToDateTime(strposlednyDatumNovy);
|
||||
if (strposlednyDatumNovy != "") novyHladanyMaxDateTime = Convert.ToDateTime(strposlednyDatumNovy);
|
||||
|
||||
if ((novyHladanyMaxDateTime > maxDateTime && dataGridView3.SelectedRows.Count >0 ) ||
|
||||
povolitrefresh == true)
|
||||
{
|
||||
|
||||
for (int i = listView2.Items.Count - 1; i >= 0; i--) listView2.Items[i].Remove();
|
||||
|
||||
string cmd2 = @"SELECT `Od`,
|
||||
`Komu`,
|
||||
DATE_FORMAT (`DatumCas`, '%e' '.' '%c' '. - ' '%H' ':' '%i') AS `DatCas`,
|
||||
`Text`,
|
||||
`Status`,
|
||||
`IDChat`
|
||||
FROM `tabchat`
|
||||
WHERE ((`Od` = " + idUserOd + " AND `Komu` = " + idUserKomu + ") OR (`Od` = " + idUserKomu + " AND `Komu` = " + idUserOd + ")) ORDER BY `DatumCas`;";
|
||||
|
||||
DataTable tbllistView = new DataTable();
|
||||
classSQL.SQL(cmd2, out tbllistView);
|
||||
//"↑↓"
|
||||
for (int i = 0; i < tbllistView.Rows.Count; i++)
|
||||
{
|
||||
string smer = "";
|
||||
string datumcas = "";
|
||||
string text = "";
|
||||
|
||||
if (tbllistView.Rows[i].ItemArray[tbllistView.Columns["Od"].Ordinal].ToString() == idUserOd) smer = "↑";
|
||||
else smer = "↓";
|
||||
datumcas = tbllistView.Rows[i].ItemArray[tbllistView.Columns["DatCas"].Ordinal].ToString();
|
||||
text = tbllistView.Rows[i].ItemArray[tbllistView.Columns["Text"].Ordinal].ToString();
|
||||
|
||||
addlistviewline(smer, datumcas, text);
|
||||
|
||||
if (tbllistView.Rows[i].ItemArray[tbllistView.Columns["Od"].Ordinal].ToString() == idUserOd) listView2.Items[listView2.Items.Count - 1].ForeColor = Color.Blue;
|
||||
else
|
||||
{
|
||||
if (tbllistView.Rows[i].ItemArray[tbllistView.Columns["Status"].Ordinal].ToString() == "Neprečítaná")
|
||||
{
|
||||
string IDChat = tbllistView.Rows[i].ItemArray[tbllistView.Columns["IDChat"].Ordinal].ToString();
|
||||
string cmd3 = @"UPDATE `mip`.`tabchat` SET `Status` = 'Prečítaná' WHERE `IDChat`=" + IDChat + ";";
|
||||
|
||||
classSQL.SQL(cmd3);
|
||||
listView2.Items[listView2.Items.Count - 1].ForeColor = Color.Red;
|
||||
}
|
||||
else
|
||||
{
|
||||
listView2.Items[listView2.Items.Count - 1].ForeColor = Color.Black;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (listView2.Items.Count > 0) listView2.Items[listView2.Items.Count - 1].EnsureVisible();
|
||||
if (strposlednyDatumNovy != "0") maxDateTime = Convert.ToDateTime(strposlednyDatumNovy);
|
||||
povolitrefresh = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void addlistviewline(String addsmer, String adddatumcas, String addtext)
|
||||
{
|
||||
ListViewItem newitem = new ListViewItem(addsmer);
|
||||
newitem.SubItems.Add(adddatumcas);
|
||||
newitem.SubItems.Add(addtext);
|
||||
listView2.Items.Add(newitem);
|
||||
}
|
||||
|
||||
private void label3_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
bool vymazatText = false;
|
||||
bool povolitrefresh = false;
|
||||
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == 13)
|
||||
{
|
||||
string cmd = @"INSERT INTO `mip`.`tabchat` (`Od`, `Komu`, `DatumCas`, `Text`, `Status`) VALUES ('"
|
||||
+ idUserOd + "', '"
|
||||
+ idUserKomu + "', "
|
||||
+ "NOW()" + ", '"
|
||||
+ textBox3.Text + "', "
|
||||
+ "'Neprečítaná');";
|
||||
|
||||
classSQL.SQL(cmd);
|
||||
povolitrefresh = true;
|
||||
refreshListView();
|
||||
vymazatText = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void textBox3_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void textBox3_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (vymazatText == true)
|
||||
{
|
||||
textBox3.Clear();
|
||||
vymazatText = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void frmChat_Leave(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void dataGridView3_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
|
||||
{
|
||||
classGlobal.SetCellColor(dataGridView3, e.ColumnIndex, e.RowIndex, e.Value.ToString());
|
||||
}
|
||||
|
||||
private void dataGridView3_SelectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
if(dataGridView3.SelectedRows.Count != 0) label1.Text = "Adresát: " + dataGridView3.Rows[dataGridView3.SelectedRows[0].Index].Cells["Meno"].Value.ToString();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user