/// <summary> /// Event handler koji se aktivira kada se promijeni tab na formi, tj aktivira se tab za pregled datoteka /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void tabKontrola_SelectedIndexChanged(object sender, EventArgs e) { if (tabKontrola.SelectedIndex == 1) { DropboxManager novo = new DropboxManager(); List <Datoteka> listaDatoteka = await novo.ListRootFolder(prijavljeniKorisnik.Username, listaKorisnika.Korisnici); listaDatoteka = listaDatoteka.OrderByDescending(x => x.Datum).ToList(); TablicaDatoteka(listaDatoteka); } }
/// <summary> /// Event handler koji se aktivira prilikom klika na gumb za skidanje ili brisanje datoteke sa dropbox servera /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void prikazDatoteke_CellClick(object sender, DataGridViewCellEventArgs e) { int delete = 0; //index klika za preuzimanje datoteke if (e.ColumnIndex == 0) { try { DropboxManager novo = new DropboxManager(); string posiljatelj = prikazDatoteke.Rows[e.RowIndex].Cells["Posiljatelj"].Value as string; fileNameSkini = prikazDatoteke.Rows[e.RowIndex].Cells["ImeDatoteke"].Value as string; IspisLogaZaPregled(4); statusPreuzimanja = 1; timerPreuzmi.Start(); byte[] file = await novo.Download(prijavljeniKorisnik.Username, posiljatelj, fileNameSkini); OtvoriSaveFileDialog(file); } catch { } timerPreuzmi.Stop(); } //index klika za brisanje datoteke if (e.ColumnIndex == 1) { try { DropboxManager novo = new DropboxManager(); string posiljatelj = prikazDatoteke.Rows[e.RowIndex].Cells["Posiljatelj"].Value as string; fileNameSkini = prikazDatoteke.Rows[e.RowIndex].Cells["ImeDatoteke"].Value as string; delete = await novo.DeleteFile(prijavljeniKorisnik.Username, posiljatelj, fileNameSkini); IspisLogaZaPregled(3); if (delete == 1) { List <Datoteka> listaDatoteka = await novo.ListRootFolder(prijavljeniKorisnik.Username, listaKorisnika.Korisnici); listaDatoteka = listaDatoteka.OrderByDescending(x => x.Datum).ToList(); TablicaDatoteka(listaDatoteka); } } catch { } } }
/// <summary> /// Pomoćna funkcija za funkciju RegistrirajKorisnika() koja zapisuje sve potrebne ključeve u bazu podataka(Javni,Privatni,2FA) /// </summary> /// <param name="connection"></param> private void ZapisiKljuceveUBazu(SqlConnection connection) { var command = new SqlCommand(); Enkripcija enkripcija = new RsaEnkripcija(); enkripcija.AssignRsaKeys(); JavniKljuc = enkripcija.DohvatiJavniKljuc(); command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "UPDATE Korisnik SET JavniKljuc = @JavniKljuc WHERE Username=@Username"; command.Parameters.AddWithValue("@JavniKljuc", JavniKljuc); command.Parameters.AddWithValue("@Username", Username); command.ExecuteNonQuery(); command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "INSERT INTO PrivatniKljucevi(Username,PrivatniKljuc) VALUES (@Username,@PrivatniKljuc)"; command.Parameters.AddWithValue("@PrivatniKljuc", enkripcija.DohvatiPrivatniKljuc()); command.Parameters.AddWithValue("@Username", Username); command.ExecuteNonQuery(); if (Kljuc2FA == "DA") { Verficiranje2FA verificiranje = new Verficiranje2FA(); Kljuc2FA = verificiranje.GenerirajKljuc2FA(); command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "UPDATE Korisnik SET Kljuc2FA = @Kljuc2FA WHERE Username=@Username"; command.Parameters.AddWithValue("@Kljuc2FA", Kljuc2FA); command.Parameters.AddWithValue("@Username", Username); command.ExecuteNonQuery(); } DropboxManager dropbox = new DropboxManager(); dropbox.CreateANewFolder(Username); }
/// <summary> /// Event handler koji prilikom klika na gumb "Posalji" salje datoteku na dropbox server /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void gumbPosalji_Click(object sender, EventArgs e) { try { IspisLoga(3); statusLoga = 0; timerLog.Start(); DropboxManager novo = new DropboxManager(); string javniKljuc = listaKorisnika.Korisnici.Where(i => i.Username == odabirKorisnik.SelectedItem.ToString()).Select(p => p.JavniKljuc).First(); int result = await novo.Upload(fileName, prijavljeniKorisnik.Username, odabirKorisnik.SelectedItem.ToString(), javniKljuc); if (result == 1) { IspisLoga(1); } } catch { IspisLoga(2); } timerLog.Stop(); }