/// <summary> /// Metoda koja zapisuje poruku u bazu podataka - potreno je izvršiti 2 upita - jedan na tablici EnkriptiraniPaket, a drugi /// na tablici Poruka - tada je poruka usješno zapisana u bazu podataka. /// </summary> /// <param name="connection"></param> /// <returns></returns> public string ZapisiPorukuUBazu(SqlConnection connection) { string rezultat = ""; int idEnkriptiraniPaket; var command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "INSERT INTO EnkriptiraniPaket(EnkriptiraniKljuc,EnkriptiraniPodaci,Iv) OUTPUT INSERTED.Id VALUES (@EnkriptiraniKljuc,@EnkriptiraniPodaci,@Iv)"; command.Parameters.AddWithValue("@EnkriptiraniKljuc", Paket.EnkriptiraniKljuc); command.Parameters.AddWithValue("@EnkriptiraniPodaci", Paket.EnkriptiraniPodaci); command.Parameters.AddWithValue("@Iv", Paket.Iv); idEnkriptiraniPaket = (int)command.ExecuteScalar(); command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "INSERT INTO Poruka(Posiljatelj,Primatelj,DatumSlanja,IdPaketa) VALUES (@Posiljatelj,@Primatelj,@DatumSlanja,@IdPaketa)"; command.Parameters.AddWithValue("@Posiljatelj", Posiljatelj); command.Parameters.AddWithValue("@Primatelj", Primatelj); command.Parameters.AddWithValue("@DatumSlanja", DatumSlanja); command.Parameters.AddWithValue("@IdPaketa", idEnkriptiraniPaket); command.ExecuteNonQuery(); UspjehSlanjaPoruke uspjeh = new UspjehSlanjaPoruke("DA"); rezultat = JsonPretvarac.Serijalizacija(uspjeh); return(rezultat); }
/// <summary> /// Event handler koji se aktivira prilikom klika na gumb Enkriptiraj i Pošalji. Poruci se pridružuje primatelj, pošiljatelj /// te datum slanja zajedno sa sadrzajem. Sa pomoću javnoga ključa formira se enkripcijski paket poruke te se takva poruka šalje /// prema serveru. Čeka se odgovor servera koji predstavlja Uspjeh Slanja Poruke - je li poruka poslana ili nije. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gumbPosalji_Click(object sender, EventArgs e) { string sadrzaj; string javniKljuc; klijent = new TcpKlijent(); Poruka novaPoruka = new Poruka(); novaPoruka.Posiljatelj = prijavljeniKorisnik.Username; novaPoruka.Primatelj = odabirUsername.Text; novaPoruka.DatumSlanja = DateTime.Now; sadrzaj = unosSadrzaj.Text; javniKljuc = novaLista.Korisnici.Where(i => i.Username == novaPoruka.Primatelj).Select(p => p.JavniKljuc).First(); novaPoruka.FormirajEnkripcijskiPaket(sadrzaj, javniKljuc); klijent.PosaljiServeru(novaPoruka, "PosaljiPoruku"); uspjeh = (UspjehSlanjaPoruke)klijent.PrimiOdServera(); if (uspjeh.PorukaPoslana == "DA") { prikazLog.Text += "Vrijeme: " + DateTime.Now.ToString() + " - Poruka poslana" + Environment.NewLine; } else { prikazLog.Text += "Vrijeme: " + DateTime.Now.ToString() + " - Poruka nije poslana" + Environment.NewLine; } }
/// <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); }