/// <summary> /// Deserijalizacija json stringa u pripadajući objekt klase /// </summary> /// <param name="json"></param> /// <returns></returns> public static object Deserijalizacija(string json) { object izlaz = 0; string noviJson = IzbaciTipPoruke(json); string tipKlase = Parsiranje(noviJson, "Tip"); if (tipKlase == "Korisnik") { Korisnik osoba = JsonConvert.DeserializeObject <Korisnik>(noviJson); izlaz = osoba; } if (tipKlase == "UspjehRegistracije") { UspjehRegistracije uspjeh = JsonConvert.DeserializeObject <UspjehRegistracije>(noviJson); izlaz = uspjeh; } if (tipKlase == "ListaKorisnika") { ListaKorisnika lista = JsonConvert.DeserializeObject <ListaKorisnika>(noviJson); izlaz = lista; } if (tipKlase == "Poruka") { Poruka poruka = JsonConvert.DeserializeObject <Poruka>(noviJson); izlaz = poruka; } if (tipKlase == "UspjehSlanjaPoruke") { UspjehSlanjaPoruke uspjeh = JsonConvert.DeserializeObject <UspjehSlanjaPoruke>(noviJson); izlaz = uspjeh; } if (tipKlase == "ListaPoruka") { ListaPoruka poruke = JsonConvert.DeserializeObject <ListaPoruka>(noviJson); izlaz = poruke; } if (tipKlase == "AdminMail") { AdminMail mail = JsonConvert.DeserializeObject <AdminMail>(noviJson); izlaz = mail; } return(izlaz); }
/// <summary> /// Event Handler koji se aktivira prilikom klika na određeni tab u formi. Ovisno na koji se tab klikne /// šalju se odgovarajući podaci prema serveru na temelju kojih se dohavaćaju poslane ili primljene poruke. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tabKontrola_SelectedIndexChanged(object sender, EventArgs e) { if (tabKontrola.SelectedIndex == 1) { dataGridViewPoslano.Rows.Clear(); dataGridViewPoslano.Refresh(); klijent = new TcpKlijent(); listaPoruka = new ListaPoruka(); listaPoruka.Username = prijavljeniKorisnik.Username; klijent.PosaljiServeru(listaPoruka, "DohvatiPoslanePoruke"); listaPoruka = (ListaPoruka)klijent.PrimiOdServera(); listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList(); for (int i = 0; i < listaPoruka.Poruke.Count; i++) { Poruka poruka = listaPoruka.Poruke[i]; EnkripcijskiPaket paket = listaPoruka.Poruke[i].Paket; dataGridViewPoslano.Rows.Add(poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv)); } } if (tabKontrola.SelectedIndex == 0) { dataGridViewPrimljeno.Rows.Clear(); dataGridViewPrimljeno.Refresh(); klijent = new TcpKlijent(); listaPoruka = new ListaPoruka(); listaPoruka.Username = prijavljeniKorisnik.Username; klijent.PosaljiServeru(listaPoruka, "DohvatiPrimljenePoruke"); listaPoruka = (ListaPoruka)klijent.PrimiOdServera(); listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList(); for (int i = 0; i < listaPoruka.Poruke.Count; i++) { Poruka poruka = listaPoruka.Poruke[i]; EnkripcijskiPaket paket = listaPoruka.Poruke[i].Paket; dataGridViewPrimljeno.Rows.Add("", poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv)); } } }
/// <summary> /// Konstuktor FormePregled koji inicijalizira formu, oblikuje gridview te odmah dohvaća primljenje poruke korisnika s obzirom /// da je tab aktivan prilikom inicijalizacije forme /// </summary> /// <param name="forma"></param> /// <param name="korisnik"></param> public FormaPregled(Form1 forma, Korisnik korisnik) { InitializeComponent(); Dizajner.FormaBezOkna(this); glavnaForma = forma; prijavljeniKorisnik = korisnik; FormirajDataGridove(); klijent = new TcpKlijent(); listaPoruka = new ListaPoruka(); listaPoruka.Username = prijavljeniKorisnik.Username; klijent.PosaljiServeru(listaPoruka, "DohvatiPrimljenePoruke"); listaPoruka = (ListaPoruka)klijent.PrimiOdServera(); listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList(); for (int i = 0; i < listaPoruka.Poruke.Count; i++) { Poruka poruka = listaPoruka.Poruke[i]; EnkripcijskiPaket paket = listaPoruka.Poruke[i].Paket; dataGridViewPrimljeno.Rows.Add("", poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv)); } }