Documente Academic
Documente Profesional
Documente Cultură
Messaging Cloud
Profesor, Elev,
2020
Introducere
limbajului de programare C++. Limbajul C# este unul dintre cele mai utilizate limbaje de
programare multiparadigmă din lume, fiind clasat în acest moment pe locul 5 mondial, ca
nivel de popularitate. Este un limbaj simplu, modern, cu o flexibilitate foarte mare în ceea ce
privește dezvoltarea de aplicații și portabilitatea acestora.
În epoca în care trăim ne confruntăm din ce în ce mai mult cu fenomenul de media de
socializare. Efectele rețelelor de socializare pe care oamenii își petrec zilnic ore întregi sunt
discutate pe larg. În ultimii ani comunicația maselor prin rețelele sociale are consecințe din ce
în ce mai vizibile, chiar și pe plan mondial. Analiștii sunt de părere că fără rețele sociale
evenimentele s-ar fi desfășurat altfel.
Aplicația Messaging Cloud este un produs software, destinat pentru platforma Windows, prin
care utilizatorii pot comunica cu alte persoane aflate la depărtare. Designul modern și intuitiv
fac din această aplicație un mod ușor de a ține legătura cu prietenii, mesajele ajungând în doar
câteva secunde la destinatari.
Ideea acestui soft a apărut din pasiunea pentru limbajele de programare, aplicația îmbinând
noțiuni avansate de C#, SQL, elemente de design și cromatică, administrarea serverelor.
2. phpMyAdmin
phpMyAdmin este un sistem de gestiune a bazelor de date MySQL liber, open source, scris
în PHP și destinat administrării bazelor de date prin intermediul unui browser web. Prin
phpMyAdmin se pot întreprinde diverse operații cum ar fi crearea, modificarea sau ștergerea
bazelor de date, tabelelor, câmpurilor sau rândurilor; executarea de comenzi (interogări) SQL.
2
Messaging Cloud
Baza de date MySql folosită este creată cu ajutorul mediului phpMyAdmin și este publicată
pe un domeniu Hostinger, oferind o bună stocarea și reîmprospătare a datelor indiferent de
locul în care utilizatorul este conectat.
Utilzatori Prieteni
User - int
Id - int
Prieten - varchar
Nume_Prenume - varchar
Email - varchar
Mesaje
Parola - varchar
User1 - varchar
User - varchar
User2 - varchar
Status - varchar
Mesaj - varchar
Imagine - longblob Citit - varchar
Telefon - varchar Data - datetime
Oraș - varchar
3
Messaging Cloud
Instalarea aplicației
4
Messaging Cloud
Pasul 1: Pasul 2:
Pasul 3: Pasul 4:
Pasul 5:
După finalizarea instalării pe Desktop
va apărea iconița aplicației.
Fereastra Login
5
Messaging Cloud
Design:
Codul sursă:
1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Linq;
7. using System.Text;
8. using System.Threading.Tasks;
9. using System.Windows.Forms;
10. using MySql.Data.MySqlClient;
11.
12. namespace Messaging_Cloud
13. {
14. public partial class Login : Form
15. {
16. private MySqlConnection conn;
17. public Login()
18. {
19. InitializeComponent();
20. conn = new MySqlConnection(@"SERVER=sql308.main-
hosting.eu;DATABASE=u510481174_atestat;USER=u510481174_laurentiu21; PASSWORD=****")
21. }
22.
23. private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs
e)
24. {
25. Form1 f = new Form1();
26. this.Hide();
27. f.ShowDialog();
28. this.Close();
29. }
30.
6
Messaging Cloud
31. private void PictureBox1_Click(object sender, EventArgs e)
32. {
33. timer1.Start();
34. }
35.
36. private void Timer1_Tick(object sender, EventArgs e)
37. {
38. if (this.Opacity > 0.0)
39. {
40. this.Opacity -= 0.25;
41. }
42. else
43. {
44. timer1.Stop();
45. Application.Exit();
46. }
47. }
48.
49. private void PictureBox2_Click(object sender, EventArgs e)
50. {
51. WindowState = FormWindowState.Minimized;
52. }
53.
54. private void BunifuMaterialTextbox4_Leave(object sender, EventArgs e)
55. {
56. if (bunifuMaterialTextbox4.Text == "")
57. {
58. bunifuMaterialTextbox4.Text = "Parola";
59. bunifuMaterialTextbox4.isPassword = false;
60. }
61. }
62. public void Alertt(string msg, Alert.enmType type)
63. {
64. Alert frm = new Alert();
65. frm.showAlert(msg, type);
66. }
67. private void BunifuMaterialTextbox4_Enter(object sender, EventArgs e)
68. {
69. if (bunifuMaterialTextbox4.Text == "Parola")
70. {
71. bunifuMaterialTextbox4.Text = "";
72. bunifuMaterialTextbox4.isPassword = true;
73. }
74. }
75.
76. private void Button1_Click(object sender, EventArgs e)
77. {
78. if (bunifuMaterialTextbox2.Text != "" && bunifuMaterialTextbox4.Text != "")
79. {
80. try
81. {
82. int ok = 0;
83. conn.Open();
84. MySqlCommand cmd = new MySqlCommand(@"select *from Utilizatori where
User=@val1 and Parola=@val2", conn);
85. cmd.Parameters.AddWithValue("val1", bunifuMaterialTextbox2.Text.ToStr
ing());
86. cmd.Parameters.AddWithValue("val2", bunifuMaterialTextbox4.Text.ToStr
ing());
87. var red = cmd.ExecuteReader();
88. if (red.Read())
89. {
90. this.Alertt("Logare reusita", Alert.enmType.Success);
91. new Loading().ShowDialog();
92. Form3 f = new Form3();
93. f.user = bunifuMaterialTextbox2.Text;
7
Messaging Cloud
94. f.label5.Text = bunifuMaterialTextbox2.Text;
95. f.label7.Text = "Bine ai venit, " + red[1].ToString();
96. f.label7.Left = (f.panel3.Width - f.label7.Size.Width) / 2;
97. this.Hide();
98. f.ShowDialog();
99. }
100. else
101. this.Alertt("Logare nereusita", Alert.enmType.Error);
102. red.Dispose();
103. cmd.Dispose();
104. conn.Close();
105. }
106. catch(Exception ex)
107. {
108. MessageBox m = new MessageBox();
109. m.ShowDialog();
110. }
111.
112. }
113. else
114. this.Alertt("Campuri necompletate", Alert.enmType.Error);
115. }
116.
117. private void pictureBox1_MouseHover(object sender, EventArgs e)
118. {
119. pictureBox1.BackColor = Color.Crimson;
120. }
121.
122. private void pictureBox1_MouseLeave(object sender, EventArgs e)
123. {
124. pictureBox1.BackColor = Color.White;
125. }
126.
127. private void pictureBox2_MouseHover(object sender, EventArgs e)
128. {
129. pictureBox2.BackColor = Color.FromArgb(128, 128, 128);
130. }
131.
132. private void pictureBox2_MouseLeave(object sender, EventArgs e)
133. {
134. pictureBox2.BackColor = Color.White;
135. }
136. }
137. }
Fereastra Sign Up
8
Messaging Cloud
Design:
Codul sursă:
1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Linq;
7. using System.Text;
8. using System.Threading.Tasks;
9. using System.Windows.Forms;
10. using MySql.Data.MySqlClient;
11.
12. namespace Messaging_Cloud
13. {
14. public partial class Form1 : Form
15. {
16. private MySqlConnection conn;
17. public Form1()
18. {
19. InitializeComponent();
20. conn = new MySqlConnection(@"SERVER=sql308.main-
hosting.eu;DATABASE=u510481174_atestat;USER=u510481174_laurentiu21; PASSWORD=****");
21. }
22.
23. private void PictureBox1_Click(object sender, EventArgs e)
24. {
9
Messaging Cloud
25. timer1.Start();
26. }
27.
28. private void PictureBox2_Click(object sender, EventArgs e)
29. {
30. WindowState = FormWindowState.Minimized;
31. }
32.
33. private void Button2_Click(object sender, EventArgs e)
34. {
35. bunifuMaterialTextbox1.Text = "";
36. bunifuMaterialTextbox2.Text = "";
37. bunifuMaterialTextbox3.Text = "";
38. bunifuMaterialTextbox4.Text = "";
39. bunifuMaterialTextbox5.Text = "";
40. bunifuCheckbox1.Checked = false;
41. }
42.
43. private void BunifuMaterialTextbox4_Enter(object sender, EventArgs e)
44. {
45. if (bunifuMaterialTextbox4.Text == "Parola")
46. {
47. bunifuMaterialTextbox4.Text = "";
48. bunifuMaterialTextbox4.isPassword = true;
49. }
50. }
51.
52. private void BunifuMaterialTextbox4_Leave(object sender, EventArgs e)
53. {
54. if (bunifuMaterialTextbox4.Text == "")
55. {
56. bunifuMaterialTextbox4.Text = "Parola";
57. bunifuMaterialTextbox4.isPassword = false;
58. }
59. }
60.
61. private void BunifuMaterialTextbox5_Enter(object sender, EventArgs e)
62. {
63. if (bunifuMaterialTextbox5.Text == "Parola")
64. {
65. bunifuMaterialTextbox5.Text = "";
66. bunifuMaterialTextbox5.isPassword = true;
67. }
68. }
69.
70. private void BunifuMaterialTextbox5_Leave(object sender, EventArgs e)
71. {
72. if (bunifuMaterialTextbox5.Text == "")
73. {
74. bunifuMaterialTextbox5.Text = "Parola";
75. bunifuMaterialTextbox5.isPassword = false;
76. }
77. }
78. public void Alertt(string msg, Alert.enmType type)
79. {
80. Alert frm = new Alert();
81. frm.showAlert(msg, type);
82. }
83. private void Button1_Click(object sender, EventArgs e)
84. {
85. if (bunifuMaterialTextbox1.Text!="" && bunifuMaterialTextbox2.Text!="" && bun
ifuMaterialTextbox3.Text != "" && bunifuMaterialTextbox4.Text != "" && bunifuMaterialText
box5.Text != "" && bunifuCheckbox1.Checked)
86. {
87. if (bunifuMaterialTextbox4.Text==bunifuMaterialTextbox5.Text)
88. {
10
Messaging Cloud
89. if (bunifuMaterialTextbox3.Text.Contains("@"))
90. {
91. conn.Open();
92. MySqlCommand cmd = new MySqlCommand(@"select *from Utilizatori wh
ere Email=@var or User=@val", conn);
93. cmd.Parameters.AddWithValue("var", bunifuMaterialTextbox3.Text);
94. cmd.Parameters.AddWithValue("val", bunifuMaterialTextbox2.Text);
95. var red = cmd.ExecuteReader();
96. bool ok = true;
97. if (red.Read())
98. {
99. this.Alertt("Email sau user existent", Alert.enmType.Error);
100. bunifuMaterialTextbox3.Text = "";
101. ok = false;
102. }
103. red.Dispose();
104. cmd.Dispose();
105. conn.Close();
106. if (ok==true)
107. {
108. conn.Open();
109. cmd = new MySqlCommand(@"insert into Utilizatori(Nume
_Prenume,Email,Parola,User,Status,Ultima_accesare) values(@nume,@email,@parola,@user,@sta
tus,@accesare)", conn);
110. cmd.Parameters.AddWithValue("nume", bunifuMaterialTex
tbox1.Text);
111. cmd.Parameters.AddWithValue("email", bunifuMaterialTe
xtbox3.Text);
112. cmd.Parameters.AddWithValue("parola", bunifuMaterialT
extbox4.Text);
113. cmd.Parameters.AddWithValue("user", bunifuMaterialTex
tbox2.Text);
114. cmd.Parameters.AddWithValue("status", "online");
115. cmd.Parameters.AddWithValue("accesare", DateTime.Now)
;
116. cmd.ExecuteNonQuery();
117. cmd.Dispose();
118. conn.Close();
119.
120. this.Alertt("Cont creat", Alert.enmType.Success);
121. new Loading().ShowDialog();
122. Form3 f = new Form3();
123. f.user = bunifuMaterialTextbox2.Text;
124. f.label5.Text = bunifuMaterialTextbox2.Text;
125. f.label3.Text = "Bine ai venit, " + bunifuMaterialTex
tbox1.Text;
126. f.label3.Left = (f.panel3.Width - f.label3.Size.Width
) / 2;
127. bunifuMaterialTextbox1.Text = "";
128. bunifuMaterialTextbox2.Text = "";
129. bunifuMaterialTextbox3.Text = "";
130. bunifuMaterialTextbox4.Text = "";
131. bunifuMaterialTextbox5.Text = "";
132. bunifuCheckbox1.Checked = false;
133. this.Hide();
134. f.ShowDialog();
135.
136. }
137. }
138. else
139. {
140. this.Alertt("Format email incorect", Alert.enmType.Error)
;
141. bunifuMaterialTextbox3.Text = "";
142. }
143. }
11
Messaging Cloud
144. else
145. {
146. this.Alertt("Parolele nu coincid", Alert.enmType.Error);
147. bunifuMaterialTextbox4.Text = "";
148. bunifuMaterialTextbox5.Text = "";
149. }
150. }
151. else
152. {
153. this.Alertt("Campuri necompletate", Alert.enmType.Error);
154. }
155. }
156.
157. private void Form1_Load(object sender, EventArgs e)
158. {
159.
160. }
161.
162. private void Timer1_Tick(object sender, EventArgs e)
163. {
164. if (this.Opacity>0.0)
165. {
166. this.Opacity -= 0.25;
167. }
168. else
169. {
170. timer1.Stop();
171. Application.Exit();
172. }
173. }
174.
175. private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEv
entArgs e)
176. {
177. Login l = new Login();
178. this.Hide();
179. l.ShowDialog();
180. this.Close();
181. }
182.
183. private void pictureBox1_Click_1(object sender, EventArgs e)
184. {
185. Close();
186. }
187.
188. private void pictureBox2_Click_1(object sender, EventArgs e)
189. {
190. WindowState = FormWindowState.Minimized;
191. }
192.
193. private void pictureBox1_MouseHover(object sender, EventArgs e)
194. {
195. pictureBox1.BackColor = Color.Crimson;
196. }
197.
198. private void pictureBox1_MouseLeave(object sender, EventArgs e)
199. {
200. pictureBox1.BackColor = Color.White;
201. }
202.
203. private void pictureBox2_MouseHover(object sender, EventArgs e)
204. {
205. pictureBox2.BackColor=Color.FromArgb(128, 128, 128);
206. }
207.
208. private void pictureBox2_MouseLeave(object sender, EventArgs e)
12
Messaging Cloud
209. {
210. pictureBox2.BackColor = Color.White;
211. }
212. }
213. }
Fereastra principală
Fereastra de start:
3
5
1. Lista de butoane
2. Panel-ul de ”Bun venit”
3. Lista de prieteni
4. Tab-ul adăugare noi prieteni
5. Tab-ul de schimbare a descrierii
13
Messaging Cloud
Fereastra de mesaje:
2
3
14
Messaging Cloud
15
Messaging Cloud
1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Linq;
7. using System.Text;
8. using System.Threading.Tasks;
9. using System.Windows.Forms;
10. using MySql.Data.MySqlClient;
11. using System.IO;
12.
13. namespace Messaging_Cloud
14. {
15. public partial class Form3 : Form
16. {
17. private MySqlConnection conn;
18. public Form3()
19. {
20. InitializeComponent();
21. conn = new MySqlConnection(@"SERVER=sql308.main-
hosting.eu;DATABASE=u510481174_atestat;USER=u510481174_laurentiu21; PASSWORD=phantom
21");
22. }
23. public string user,aux1,aux2,nume;
24.
25. private void button1_Click(object sender, EventArgs e)
26. {
27.
28. }
29. public int lungime_prieteni=20;
30. private void Form3_Load(object sender, EventArgs e)
31. {
32. try
33. {
34. panel12.AutoScroll = false;
35. panel12.HorizontalScroll.Enabled = false;
36. panel12.HorizontalScroll.Visible = false;
37. panel12.HorizontalScroll.Maximum = 0;
38. panel12.AutoScroll = true;
39. conn.Open();
40. MySqlCommand cmd = new MySqlCommand(@"select Imagine,Descriere from
Utilizatori where User=@val", conn);
41. cmd.Parameters.AddWithValue("val", user);
42. var red = cmd.ExecuteReader();
43. if (red.Read())
44. {
45. if (red[0].ToString()!="")
46. {
47. byte[] img = (byte[])red[0];
48. MemoryStream m = new MemoryStream(img);
49. pictureBox3.Image = Image.FromStream(m);
50. circularPictureBox1.Image = Image.FromStream(m);
51. }
52. if (red[1].ToString() != "")
53. {
54. label6.Text = red[1].ToString();
55. bunifuMaterialTextbox2.Text = red[1].ToString();
56. }
57. }
58. red.Dispose();
16
Messaging Cloud
59. cmd.Dispose();
60. conn.Close();
61. conn.Open();
62. cmd = new MySqlCommand(@"update Utilizatori set Status='online' whe
re User=@val", conn);
63. cmd.Parameters.AddWithValue("val", user);
64. cmd.ExecuteNonQuery();
65. cmd.Dispose();
66. conn.Close();
67. int lungime = 10;
68. List<string> prieteni = new List<string>();
69. conn.Open();
70. cmd = new MySqlCommand(@"select *from Prieteni where User=@val", con
n);
71. cmd.Parameters.AddWithValue("val", user);
72. red = cmd.ExecuteReader();
73. while (red.Read())
74. {
75. prieteni.Add(red[1].ToString());
76. }
77. red.Dispose();
78. cmd.Dispose();
79. conn.Close();
80. conn.Open();
81. cmd = new MySqlCommand(@"select *from Cerere_prietenie where User2=@
val", conn);
82. cmd.Parameters.AddWithValue("val", user);
83. red = cmd.ExecuteReader();
84. if (red.Read())
85. {
86. pictureBox10.BackColor = Color.SeaGreen;
87. }
88. red.Dispose();
89. cmd.Dispose();
90. conn.Close();
91. for (int i = 0; i < prieteni.Count; i++)
92. {
93. Friend f = new Friend();
94. label2.Visible = false;
95. f.Location = new Point(0, lungime);
96. f.label5.Text = prieteni[i];
97. f.timer1.Start();
98. conn.Open();
99. cmd = new MySqlCommand(@"select *from Utilizatori where User=@va
l", conn);
100. cmd.Parameters.AddWithValue("val", prieteni[i].ToString()
);
101. red = cmd.ExecuteReader();
102. if (red.Read())
103. {
104. f.label5.Text = red[4].ToString();
105. if (red[10].ToString() != "")
106. f.label2.Text = red[10].ToString();
107. else
108. f.label2.Text = "Nicio descriere";
109.
110. if (red[8].ToString() != "")
111.
112. f.label3.Text = red[8].ToString();
113. else
114. f.label3.Text = "Locatie neprecizata";
115. char[] sep = { ' ' };
116. string[] sir;
117. sir = red[11].ToString().Split(sep);
118. f.label1.Text = sir[1];
119. if (red[6].ToString()!="")
17
Messaging Cloud
120. {
121. byte[] img = (byte[])red[6];
122. MemoryStream m = new MemoryStream(img);
123. f.pictureBox3.Image = Image.FromStream(m);
124. }
125.
126. if (red[5].ToString()=="online")
127. f.panel5.BackColor = Color.SeaGreen;
128. }
129. red.Dispose();
130. cmd.Dispose();
131. conn.Close();
132. conn.Open();
133. int contor = 0;
134. cmd = new MySqlCommand(@"select *from Mesaje where User1=
@val1 and User2=@val2", conn);
135. cmd.Parameters.AddWithValue("val1", prieteni[i]);
136. cmd.Parameters.AddWithValue("val2", user);
137. red = cmd.ExecuteReader();
138. while (red.Read())
139. {
140. contor++;
141. }
142. red.Read();
143. cmd.Dispose();
144. conn.Close();
145. if (contor>0)
146. {
147. f.label4.Text = contor.ToString();
148. f.label4.Visible = true;
149. f.label1.Visible = true;
150. }
151. f.Click += F_Click;
152. panel12.Controls.Add(f);
153. lungime += 127;
154. lungime_prieteni = lungime;
155. }
156. }
157. catch(Exception ex)
158. {
159. Close();
160. MessageBox m=new MessageBox();
161. m.ShowDialog();
162.
163. }
164. }
165. public Mesaje m;
166. public int lungime = 20;
167. public Friend f;
168. private void F_Click(object sender, EventArgs e)
169. {
170. panel3.Controls.Remove(m);
171. timer1.Stop();
172. f = (Friend)sender;
173. m = new Mesaje();
174. lungime = 20;
175. m.Location = new Point(0, 0);
176. m.pictureBox3.Image = f.pictureBox3.Image;
177. m.panel5.BackColor = f.panel5.BackColor;
178. m.label5.Text = f.label5.Text;
179. m.pictureBox1.Image = m.pictureBox3.Image;
180. m.label1.Text = m.label5.Text;
181. aux2 = m.label1.Text;
182. m.label1.Left = (m.panel2.Width - m.label1.Size.Width)/2;
183. if (m.panel5.BackColor == Color.Crimson)
184. m.label2.Text = "Offline";
18
Messaging Cloud
185. conn.Open();
186. MySqlCommand cmd1 = new MySqlCommand(@"update Mesaje set Citit='D
a' where User1=@val or User2=@val1", conn);
187. cmd1.Parameters.AddWithValue("val", f.label5.Text);
188. cmd1.Parameters.AddWithValue("val1", f.label5.Text);
189. cmd1.ExecuteNonQuery();
190. cmd1.Dispose();
191. conn.Close();
192. conn.Open();
193. MySqlCommand cmd = new MySqlCommand("select *from Utilizatori whe
re User=@val", conn);
194. cmd.Parameters.AddWithValue("val", f.label5.Text);
195. var red = cmd.ExecuteReader();
196. if (red.Read())
197. {
198. if (red[5].ToString() == "online")
199. m.panel5.BackColor = Color.SeaGreen;
200. if (red[5].ToString() == "offline")
201. m.panel5.BackColor = Color.Crimson;
202. }
203. red.Dispose();
204. cmd.Dispose();
205. conn.Close();
206. conn.Open();
207. cmd = new MySqlCommand(@"SELECT * FROM Mesaje WHERE (User1=@val1
and User2=@val2) or (User1=@val3 and User2=@val4)", conn);
208. cmd.Parameters.AddWithValue("val1", user);
209. cmd.Parameters.AddWithValue("val2", f.label5.Text);
210. cmd.Parameters.AddWithValue("val3", f.label5.Text);
211. cmd.Parameters.AddWithValue("val4", user);
212. red = cmd.ExecuteReader();
213. int i = 1;
214. while (red.Read())
215. {
216. m.label15.Visible = false;
217. if (red[0].ToString() == user)
218. {
219. Text t = new Text();
220. t.label5.Text = red[2].ToString();
221. //t.panel1.Location = new Point(0, 0);
222. t.pictureBox1.Image = pictureBox3.Image;
223. string[] data;
224. data = Convert.ToDateTime(red[3].ToString()).TimeOfDay.To
String().Split(':');
225. t.label2.Text = data[0] + ":" + data[1];
226. t.Location = new Point(m.panel13.Width - t.Width - 25, lu
ngime);
227. m.panel13.Controls.Add(t);
228. m.panel13.AutoScrollPosition = new Point(0, t.Location.Y)
;
229. lungime = lungime + t.Height + 20;
230. }
231. else
232. {
233. Text t = new Text();
234. t.label5.Text = red[2].ToString();
235. t.pictureBox1.Image = m.pictureBox3.Image;
236. t.pictureBox1.Location = new Point(3, 0);
237. t.panel1.BackColor = Color.FromArgb(53, 64, 77);
238. t.label2.Location = new Point(44, 47);
239. string[] data;
240. data = Convert.ToDateTime(red[3].ToString()).TimeOfDay.To
String().Split(':');
241. t.label2.Text = data[0] + ":" + data[1];
242. t.Location = new Point(15, lungime);
243. m.panel13.Controls.Add(t);
19
Messaging Cloud
244. m.panel13.AutoScrollPosition = new Point(0, t.Location.Y)
;
245. lungime = lungime + t.Height + 20;
246. }
247. i++;
248. }
249. red.Dispose();
250. cmd.Dispose();
251. conn.Close();
252. m.timer1.Start();
253. m.bunifuMaterialTextbox1.OnValueChanged += BunifuMaterialTextbox1
_OnValueChanged;
254. m.pictureBox4.Click += PictureBox4_Click;
255. conn.Open();
256. cmd = new MySqlCommand(@"select *from Utilizatori where User=@val
", conn);
257. cmd.Parameters.AddWithValue("val", m.label5.Text);
258. red = cmd.ExecuteReader();
259. if (red.Read())
260. {
261. m.label1.Text = red[4].ToString();
262. m.label4.Text = red[1].ToString();
263. if (red[7].ToString() != "")
264. m.label6.Text = red[7].ToString();
265. else
266. {
267. m.label6.Text = "-";
268. m.label6.Top -= 7;
269. m.label6.Left += 90;
270. m.label6.Font = new Font("Microsoft Sans Serif", 15);
271. }
272. m.label8.Text = red[2].ToString();
273. if (red[8].ToString() != "")
274. m.label10.Text = red[8].ToString();
275. else
276. {
277. m.label10.Text = "-";
278. m.label10.Top -= 7;
279. m.label10.Left += 90;
280. m.label10.Font = new Font("Microsoft Sans Serif", 15);
281. }
282. if (red[9].ToString()!="")
283. m.label12.Text = red[9].ToString();
284. else
285. {
286. m.label12.Text = "-";
287. m.label12.Top -= 7;
288. m.label12.Left += 90;
289. m.label12.Font = new Font("Microsoft Sans Serif", 15);
290. }
291. }
292. red.Dispose();
293. cmd.Dispose();
294. conn.Close();
295. m.pictureBox2.Click+=(sender2, e2) => show_msg2(sender2, e2, m.la
bel5.Text);
296. panel3.Controls.Add(m);
297. m.BringToFront();
298. timer1.Start();
299. }
300. public void show_msg2(object sender, EventArgs e, string auxiliar)
301. {
302. conn.Open();
303. MySqlCommand cmd = new MySqlCommand(@"DELETE FROM `Prieteni` wher
e User=@val1 and Prieten=@val2", conn);
304. cmd.Parameters.AddWithValue("val1", auxiliar);
20
Messaging Cloud
305. cmd.Parameters.AddWithValue("val2", user);
306. cmd.ExecuteNonQuery();
307. cmd.Dispose();
308. conn.Close();
309. conn.Open();
310. cmd = new MySqlCommand(@"DELETE FROM `Prieteni` where User=@val1
and Prieten=@val2", conn);
311. cmd.Parameters.AddWithValue("val1", user);
312. cmd.Parameters.AddWithValue("val2", auxiliar);
313. cmd.ExecuteNonQuery();
314. cmd.Dispose();
315. conn.Close();
316. MessageBox ms = new MessageBox();
317. ms.label2.Text = "Prieten șters!";
318. ms.ShowDialog();
319.
320. Application.Restart();
321. }
322. private void BunifuMaterialTextbox1_OnValueChanged(object sender, Eve
ntArgs e)
323. {
324. Bunifu.Framework.UI.BunifuMaterialTextbox b = (Bunifu.Framework.U
I.BunifuMaterialTextbox)sender;
325. aux1 = b.Text.ToString();
326. }
327.
328. private void PictureBox4_Click(object sender, EventArgs e)
329. {
330. m.label15.Visible = false;
331. if (aux1 != "")
332. {
333. Text t = new Text();
334. if (lungime < m.panel13.Height + 20)
335. {
336. t.Location = new Point(m.panel13.Width - t.Width - 25, lu
ngime);
337. lungime = lungime + t.Height + 20;
338. }
339. else
340. t.Location = new Point(m.panel13.Width - t.Width - 25, m.
panel13.Height + 20);
341. t.label5.Text = m.bunifuMaterialTextbox1.Text;
342. string[] data;
343. data = DateTime.Now.ToString().Split(' ');
344. string[] timp;
345. timp = data[1].Split(':');
346. t.label2.Text = timp[0] + ":" + timp[1];
347. t.pictureBox1.Image = pictureBox3.Image;
348. m.panel13.Controls.Add(t);
349. conn.Open();
350. MySqlCommand cmd = new MySqlCommand(@"insert into Mesaje(User
1,User2,Mesaj,Data,Citit) values(@user1,@user2,@mesaj,@data,@citit)", conn);
351. cmd.Parameters.AddWithValue("user1", user);
352. cmd.Parameters.AddWithValue("user2", aux2);
353. cmd.Parameters.AddWithValue("mesaj", aux1);
354. cmd.Parameters.AddWithValue("data", DateTime.Now);
355. cmd.Parameters.AddWithValue("citit", "Nu");
356. cmd.ExecuteNonQuery();
357. cmd.Dispose();
358. conn.Close();
359. m.bunifuMaterialTextbox1.Text = "";
360. m.panel13.AutoScrollPosition = new Point(0, m.panel13.AutoScr
ollMinSize.Height);
361. }
362. }
363. private void timer1_Tick(object sender, EventArgs e)
21
Messaging Cloud
364. {
365. conn.Open();
366. MySqlCommand cmd = new MySqlCommand(@"select *from Mesaje where U
ser1=@val and Citit='Nu'", conn);
367. cmd.Parameters.AddWithValue("val", aux2);
368. var red = cmd.ExecuteReader();
369. if (red.Read())
370. {
371. Text t = new Text();
372. t.label5.Text = red[2].ToString();
373. t.pictureBox1.Image = m.pictureBox3.Image;
374. t.pictureBox1.Location = new Point(3, 0);
375. t.panel1.BackColor = Color.FromArgb(53, 64, 77);
376. string[] data;
377. data = Convert.ToDateTime(red[3].ToString()).TimeOfDay.ToStri
ng().Split(':');
378. t.label2.Text = data[0] + ":" + data[1];
379. if (lungime< m.panel13.Height)
380. {
381. t.Location = new Point(15, lungime);
382. lungime = lungime + t.Height + 20;
383. }
384. else
385. t.Location = new Point(15, m.panel13.Height + 20);
386. m.panel13.AutoScrollPosition = new Point(0, m.panel13.AutoScr
ollMinSize.Height);
387. m.panel13.Controls.Add(t);
388. }
389. red.Dispose();
390. cmd.Dispose();
391. conn.Close();
392. conn.Open();
393. cmd = new MySqlCommand(@"update Mesaje set Citit='Da' where User1
=@val and Citit='Nu'", conn);
394. cmd.Parameters.AddWithValue("val", aux2);
395. cmd.ExecuteNonQuery();
396. cmd.Dispose();
397. conn.Close();
398.
399. }
400. public Panel np;
401. private void bunifuMaterialTextbox1_OnValueChanged_1(object sender, E
ventArgs e)
402. {
403.
404. }
405.
406. private void panel4_MouseHover(object sender, EventArgs e)
407. {
408. panel4.BackColor = Color.FromArgb(53, 64, 77);
409. }
410.
411. private void panel4_MouseLeave(object sender, EventArgs e)
412. {
413. panel4.BackColor = Color.FromArgb(31, 39, 49);
414. }
415. public int lungime_cerere = 20;
416. private void pictureBox5_Click(object sender, EventArgs e)
417. {
418. if (bunifuMaterialTextbox1.Text != "")
419. {
420. panel12.Controls.Remove(np);
421. pictureBox11.Visible = true;
422. int lungime = 10;
423. List<string> utilizatori = new List<string>();
424. np = new Panel();
22
Messaging Cloud
425. np.AutoScroll = false;
426. np.HorizontalScroll.Enabled = false;
427. np.HorizontalScroll.Visible = false;
428. np.HorizontalScroll.Maximum = 0;
429. np.AutoScroll = true;
430. np.BackColor = Color.FromArgb(31, 39, 49);
431. np.Size = new Size(295, 528);
432. np.Location = new Point(0, 0);
433. conn.Open();
434. MySqlCommand cmd = new MySqlCommand(@"select *from Utilizator
i", conn);
435. var red = cmd.ExecuteReader();
436. while (red.Read())
437. {
438. if (red[4].ToString().Contains(bunifuMaterialTextbox1.Tex
t.ToString()) && red[4].ToString()!= user)
439. {
440. utilizatori.Add(red[4].ToString());
441. }
442. }
443. red.Dispose();
444. cmd.Dispose();
445. conn.Close();
446. if (utilizatori.Count>0)
447. {
448. for (int i = 0; i < utilizatori.Count; i++)
449. {
450. conn.Open();
451. cmd = new MySqlCommand(@"select *from Utilizatori whe
re User=@val", conn);
452. cmd.Parameters.AddWithValue("val", utilizatori[i]);
453. red = cmd.ExecuteReader();
454. NewFriend nf = new NewFriend();
455. nf.user = user;
456. nf.label5.Text = utilizatori[i];
457. if (red.Read())
458. {
459.
460. if (red[6].ToString()!="")
461. {
462. byte[] img = (byte[])red[6];
463. MemoryStream m = new MemoryStream(img);
464. nf.pictureBox3.Image = Image.FromStream(m);
465. }
466.
467. if (red[11].ToString() != "1900-03-05 12:23:43")
468. {
469. string[] data;
470. data = red[11].ToString().Split(' ');
471. string[] timp;
472. timp = data[1].Split(':');
473. nf.label3.Text = timp[0] + ":" + timp[1];
474. }
475. else
476. nf.label3.Text = "-";
477.
478. if (red[10].ToString() != "")
479. nf.label2.Text = red[10].ToString();
480. else
481. nf.label2.Text = "Nicio descriere";
482. }
483. red.Dispose();
484. cmd.Dispose();
485. conn.Close();
486. conn.Open();
23
Messaging Cloud
487. cmd = new MySqlCommand(@"select *from Prieteni where
User=@val and Prieten=@val1", conn);
488. cmd.Parameters.AddWithValue("val", user);
489. cmd.Parameters.AddWithValue("val1", utilizatori[i]);
490. red = cmd.ExecuteReader();
491. if (red.Read())
492. {
493. nf.pictureBox1.BackColor = Color.Crimson;
494. }
495. else
496. nf.pictureBox1.BackColor = Color.SeaGreen;
497. red.Dispose();
498. cmd.Dispose();
499. conn.Close();
500. conn.Open();
501. cmd = new MySqlCommand(@"select *from Cerere_prieteni
e where User1=@val1 and User2=@val2", conn);
502. cmd.Parameters.AddWithValue("val1", user);
503. cmd.Parameters.AddWithValue("val2", utilizatori[i]);
504. red = cmd.ExecuteReader();
505. if (red.Read())
506. {
507. nf.pictureBox1.BackColor = Color.FromArgb(238, 23
2, 170);
508. nf.pictureBox1.ImageLocation = "Imagini\\add_48px
.png";
509. }
510. red.Dispose();
511. cmd.Dispose();
512. conn.Close();
513. nf.Location = new Point(0, lungime);
514. lungime += 108;
515. np.Controls.Add(nf);
516. }
517. }
518. else
519. {
520. Label lb = new Label();
521. lb.Text = "Neexistent!";
522. lb.ForeColor = Color.White;
523. lb.Font = new Font("Century Gothic", 8);
524. lb.Top = 30;
525. lb.Left=(np.Width-lb.Width)/2;
526. np.Controls.Add(lb);
527. }
528. panel12.Controls.Add(np);
529. np.BringToFront();
530. }
531. }
532.
533. private void pictureBox11_Click(object sender, EventArgs e)
534. {
535. panel12.Controls.Remove(np);
536. bunifuMaterialTextbox1.Text = "";
537. pictureBox11.Visible = false;
538. }
539. public List<Friend_Request> freq = new List<Friend_Request>();
540. public string nume_user;
541. private void pictureBox10_Click(object sender, EventArgs e)
542. {
543. lungime_cerere = 20;
544. Cerere c = new Cerere();
545. if (pictureBox10.BackColor==Color.SeaGreen)
546. {
547. List<string> nume = new List<string>();
548. conn.Open();
24
Messaging Cloud
549. MySqlCommand cmd = new MySqlCommand(@"select *from Cerere_pri
etenie where User2=@val", conn);
550. cmd.Parameters.AddWithValue("val", user);
551. var red = cmd.ExecuteReader();
552. while (red.Read())
553. {
554. nume.Add(red[0].ToString());
555. }
556. red.Dispose();
557. cmd.Dispose();
558. conn.Close();
559.
560. for (int i=0; i<nume.Count; i++)
561. {
562. Friend_Request aux = new Friend_Request();
563. c.label5.Visible = false;
564. conn.Open();
565. cmd = new MySqlCommand(@"select *from Utilizatori where U
ser=@val", conn);
566. cmd.Parameters.AddWithValue("val", nume[i]);
567. red = cmd.ExecuteReader();
568. if (red.Read())
569. {
570. aux.label5.Text = nume[i];
571. if (red[6].ToString()!="")
572. {
573. byte[] img = (byte[])red[6];
574. MemoryStream m = new MemoryStream(img);
575. aux.pictureBox3.Image= Image.FromStream(m);
576. }
577. }
578. red.Dispose();
579. cmd.Dispose();
580. conn.Close();
581. freq.Add(aux);
582. nume_user = freq[i].label5.Text;
583. freq[i].pictureBox1.Click += (sender2, e2) => show_msg(se
nder2, e2, aux);
584. freq[i].pictureBox2.Click += (sender2, e2) => show_msg1(s
ender2, e2, aux);
585. freq[i].Location = new Point(0, lungime_cerere);
586. c.panel2.Controls.Add(freq[i]);
587. lungime_cerere += 100;
588. }
589. }
590. c.ShowDialog();
591. }
592. public void show_msg(object sender, EventArgs e, Friend_Request aux)
593. {
594. conn.Open();
595. MySqlCommand cmd = new MySqlCommand(@"INSERT INTO Prieteni(User,P
rieten) VALUES(@val1,@val2)", conn);
596. cmd.Parameters.AddWithValue("val1", user);
597. cmd.Parameters.AddWithValue("val2", aux.label5.Text);
598. cmd.ExecuteNonQuery();
599. cmd.Dispose();
600. conn.Close();
601. conn.Open();
602. cmd = new MySqlCommand(@"INSERT INTO Prieteni(User,Prieten) VALUE
S(@val1,@val2)", conn);
603. cmd.Parameters.AddWithValue("val1", aux.label5.Text);
604. cmd.Parameters.AddWithValue("val2", user);
605. cmd.ExecuteNonQuery();
606. cmd.Dispose();
607. conn.Close();
608. conn.Open();
25
Messaging Cloud
609. cmd = new MySqlCommand(@"delete from Cerere_prietenie where User1
=@val1 and User2=@val2", conn);
610. cmd.Parameters.AddWithValue("val1", aux.label5.Text);
611. cmd.Parameters.AddWithValue("val2", user);
612. cmd.ExecuteNonQuery();
613. cmd.Dispose();
614. conn.Close();
615. Friend fre = new Friend();
616. label2.Visible = false;
617. fre.Location = new Point(0, lungime_prieteni);
618. lungime_prieteni += 127;
619. fre.label5.Text = aux.label5.Text;
620. fre.timer1.Start();
621. conn.Open();
622. cmd = new MySqlCommand(@"select *from Utilizatori where User=@val
", conn);
623. cmd.Parameters.AddWithValue("val", aux.label5.Text);
624. var red = cmd.ExecuteReader();
625. if (red.Read())
626. {
627. fre.label5.Text = red[4].ToString();
628. if (red[10].ToString() != "")
629. fre.label2.Text = red[10].ToString();
630. else
631. fre.label2.Text = "Nicio descriere";
632.
633. if (red[8].ToString() != "")
634.
635. fre.label3.Text = red[8].ToString();
636. else
637. fre.label3.Text = "Locatie neprecizata";
638.
639. char[] sep = { ' ' };
640. string[] sir;
641. sir = red[11].ToString().Split(sep);
642. fre.label1.Text = sir[1];
643. if (red[6].ToString() != "")
644. {
645. byte[] img = (byte[])red[6];
646. MemoryStream m = new MemoryStream(img);
647. fre.pictureBox3.Image = Image.FromStream(m);
648. }
649. if (red[5].ToString() == "online")
650. fre.panel5.BackColor = Color.SeaGreen;
651. }
652. red.Dispose();
653. cmd.Dispose();
654. conn.Close();
655. aux.pictureBox1.Visible = false;
656. aux.pictureBox2.Visible = false;
657. aux.label1.Text = "Cerere aprobată";
658. aux.label1.Visible = true;
659. fre.Click += F_Click;
660. panel12.Controls.Add(fre);
661. }
662. public void show_msg1(object sender, EventArgs e, Friend_Request aux)
663. {
664. conn.Open();
665. MySqlCommand cmd = new MySqlCommand(@"delete from Cerere_prieteni
e where User1=@val1 and User2=@val2", conn);
666. cmd.Parameters.AddWithValue("val1", aux.label5.Text);
667. cmd.Parameters.AddWithValue("val2", user);
668. cmd.ExecuteNonQuery();
669. cmd.Dispose();
670. conn.Close();
26
Messaging Cloud
671. aux.pictureBox1.Visible = false;
672. aux.pictureBox2.Visible = false;
673. aux.label1.Text = "Cerere aprobată";
674. aux.label1.Visible = true;
675. }
676. private void panel4_Click(object sender, EventArgs e)
677. {
678. timer1.Stop();
679. panel3.Controls.Remove(m);
680. }
681.
682. private void pictureBox1_MouseHover(object sender, EventArgs e)
683. {
684. pictureBox1.BackColor = Color.Crimson;
685. }
686.
687. private void pictureBox1_MouseLeave(object sender, EventArgs e)
688. {
689. pictureBox1.BackColor = Color.FromArgb(25, 34, 41);
690. }
691.
692. private void pictureBox2_MouseHover(object sender, EventArgs e)
693. {
694. pictureBox2.BackColor = Color.FromArgb(53, 64, 77);
695. }
696.
697. private void pictureBox2_MouseLeave(object sender, EventArgs e)
698. {
699. pictureBox2.BackColor = Color.FromArgb(25, 34, 41);
700. }
701.
702. private void pictureBox4_MouseHover(object sender, EventArgs e)
703. {
704. pictureBox4.BackColor = Color.FromArgb(53, 64, 77);
705. }
706.
707. private void pictureBox4_MouseLeave(object sender, EventArgs e)
708. {
709. pictureBox4.BackColor = Color.FromArgb(25, 34, 41);
710. }
711.
712. private void label1_MouseHover(object sender, EventArgs e)
713. {
714. label1.ForeColor = Color.FromArgb(210, 212, 213);
715. }
716.
717. private void label1_MouseLeave(object sender, EventArgs e)
718. {
719. label1.ForeColor = Color.White;
720. }
721. public Modify me;
722. private void pictureBox4_Click_1(object sender, EventArgs e)
723. {
724. me = new Modify();
725. me.user = user;
726. me.prev = circularPictureBox1.Image;
727. conn.Open();
728. MySqlCommand cmd = new MySqlCommand(@"select *from Utilizatori wh
ere User=@val", conn);
729. cmd.Parameters.AddWithValue("val", user);
730. var red = cmd.ExecuteReader();
731. if (red.Read())
732. {
733. me.bunifuMaterialTextbox2.HintText = red[1].ToString();
734. if (red[7].ToString() != "")
735. me.bunifuMaterialTextbox3.HintText = red[7].ToString();
27
Messaging Cloud
736. else
737. me.bunifuMaterialTextbox3.HintText = "-";
738. me.bunifuMaterialTextbox4.HintText = red[2].ToString();
739. if (red[8].ToString() != "")
740. me.bunifuMaterialTextbox5.HintText = red[8].ToString();
741. else
742. me.bunifuMaterialTextbox5.HintText = "-";
743. if (red[9].ToString() != "")
744. me.bunifuMaterialTextbox6.HintText = red[9].ToString();
745. else
746. me.bunifuMaterialTextbox6.HintText = "-";
747. }
748. red.Dispose();
749. cmd.Dispose();
750. conn.Close();
751.
752. conn.Open();
753. cmd = new MySqlCommand(@"select Imagine from Utilizatori where Us
er=@val", conn);
754. cmd.Parameters.AddWithValue("val", user);
755. red = cmd.ExecuteReader();
756. if (red.Read())
757. {
758. if (red[0].ToString()!="")
759. {
760. byte[] img = (byte[])red[0];
761. MemoryStream mem = new MemoryStream(img);
762. me.pictureBox2.Image = Image.FromStream(mem);
763. }
764. }
765. red.Dispose();
766. cmd.Dispose();
767. conn.Close();
768. string[] sir = label7.Text.Split(',');
769. me.bunifuMaterialTextbox2.HintText = sir[1];
770. me.bunifuThinButton21.Click += BunifuThinButton21_Click;
771. me.Show();
772.
773. }
774.
775. private void pictureBox8_Click(object sender, EventArgs e)
776. {
777. if (bunifuMaterialTextbox2.Text == "")
778. bunifuMaterialTextbox2.Enabled = true;
779. else
780. {
781. conn.Open();
782. MySqlCommand cmd = new MySqlCommand(@"update Utilizatori set
Descriere=@val1 where User=@val2", conn);
783. cmd.Parameters.AddWithValue("val1",bunifuMaterialTextbox2.Tex
t);
784. cmd.Parameters.AddWithValue("val2",user);
785. cmd.ExecuteNonQuery();
786. cmd.Dispose();
787. conn.Close();
788. bunifuMaterialTextbox2.HintText = bunifuMaterialTextbox2.Text
;
789. label6.Text = bunifuMaterialTextbox2.Text;
790. bunifuMaterialTextbox2.Enabled = false;
791. }
792. }
793.
794. private void BunifuThinButton21_Click(object sender, EventArgs e)
795. {
796. label7.Text = "Bine ai venit, " + me.bunifuMaterialTextbox2.HintT
ext;
28
Messaging Cloud
797. label7.Left = (panel3.Width - label7.Size.Width) / 2;
798. pictureBox3.Image = me.pictureBox2.Image;
799. circularPictureBox1.Image = me.pictureBox2.Image;
800. }
801.
802. private void pictureBox1_Click(object sender, EventArgs e)
803. {
804. timer1.Stop();
805. conn.Open();
806. MySqlCommand cmd = new MySqlCommand(@"UPDATE `Utilizatori` SET Ul
tima_accesare=@val, Status='offline' where User=@val1", conn);
807. cmd.Parameters.AddWithValue("val", DateTime.Now);
808. cmd.Parameters.AddWithValue("val1", user);
809. cmd.ExecuteNonQuery();
810. cmd.Dispose();
811. conn.Close();
812. Close();
813. }
814.
815. private void pictureBox2_Click(object sender, EventArgs e)
816. {
817. this.WindowState = FormWindowState.Minimized;
818. }
819. }
820. }
29
Messaging Cloud
Eventuale erori
Eventualele erori apar între aplicație și baza de date atunci când baza de date nu răspunde în
timp util. Acest fapt se datorează fie conexiunii la internet, fie serviciului de hosting unde se
află baza de date.
Aceste erori sunt întâmpinate de fereastra de mai jos care închide aplicația, fiind recomandată
redeschiderea acesteia.
Cerințe de sistem
30
Messaging Cloud
Bibliografie
https://stackoverflow.com/
https://www.wikipedia.org/
https://docs.microsoft.com/ro-ro/dotnet/csharp/
31
Messaging Cloud
Cuprins
Introducere..................................................................................................................................2
Instalarea aplicației.....................................................................................................................4
Fereastra Login...........................................................................................................................5
Design:.............................................................................................................................5
Codul sursă:.....................................................................................................................5
Conturi utilizator existente destinate testelor:..................................................................7
Fereastra Sign Up........................................................................................................................8
Design:.............................................................................................................................8
Codul sursă:.....................................................................................................................8
Fereastra principală...................................................................................................................12
Fereastra de start:...........................................................................................................12
Fereastra de mesaje:.......................................................................................................13
Căutare prieteni noi:.......................................................................................................14
Fereastra Settings...........................................................................................................14
Fereastra Friend Request................................................................................................14
Codul sursă - Fereastra principală:................................................................................15
Eventuale erori..........................................................................................................................29
Cerințe de sistem.......................................................................................................................29
Bibliografie...............................................................................................................................30
Cuprins......................................................................................................................................31
32