// profil iz drop down menija private void Button_Click_2(object sender, RoutedEventArgs e) { KorisnikDetalji kd = new KorisnikDetalji(); if (kd.ShowDialog() == true) { if (kd.DetaljiIliSifra) { try { PKorisnik.PromeniDetalje(Korisnik.KorisnickoIme, kd.Ime, kd.Prezime, kd.Kompanija); PKorisnik.Ucitaj_Podatke(); } catch (OracleException oraError) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString())); } catch (OracleException err) { System.Windows.MessageBox.Show("Greska"); } } } else { try { PKorisnik.PromeniLozinku(Korisnik.KorisnickoIme, kd.NovaSifra.Password); } catch (OracleException oraError) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString())); } catch (OracleException err) { System.Windows.MessageBox.Show("Greska"); } } } } kd.Close(); }
private void Login(object param) { //ovde se radi login //vrsi se pretraga baze sa atributima ovog view modela //mora ovako da se izvadi password jer ne moze da se binduje password iz //bezbednosnih razloga //moze preko passwordboxhelpera ali je komplikovanije this.password = ((PasswordBox)param).Password; try { if (!PKorisnik.Postoji(this.username)) { throw new Exception("U_NEXIST"); } PKorisnik.Login(this.username, this.password); try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod("S_LOGIN")); } catch (OracleException er) { System.Windows.MessageBox.Show("Uspesno ste se ulogovali."); } Korisnik.KorisnickoIme = this.username; PKorisnik.Ucitaj_Podatke(); Korisnik.Projekti = PProjekat.VratiSveProjekte(Korisnik.KorisnickoIme); Korisnik.Mejlovi = PEmail.VratiSve(Korisnik.KorisnickoIme); ApplicationView av = new ApplicationView(this.mainViewModel); //ako je uspesan login onda se zatvara ova stranica this.CloseView(); //nakon ovoga MainView je i dalje Hide-ovan i tako je tokom celokupnog rada aplikacije //prikazuje se tek kada korisnik izvrsi logout } catch (OracleException oraError) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString())); } catch (OracleException err) { System.Windows.MessageBox.Show("Greska"); } } catch (System.Exception error) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(error.Message)); } catch (OracleException er) { System.Windows.MessageBox.Show("Greska"); } } //nakon ovoga ide prelaz iz LoginView u ApplicationView //ovde treba da se vrati objekat tipa Korisnik i da se prosledi ApplicationViewModel-u }
/// <summary> /// Nije u skladu sa MVVM /// Alternativa je da se napravi DependencyProperty za Click komandu koji posle moze da se /// iskoristi kao property kontrole koja treba da salje komandu /// za sada neka stoji ovako /// U zavisnosti od toga na koji element u nav baru se klikne /// menja se trenutni ViewModel i prikazuje se njegov View /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListViewMenu_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListView lv = sender as ListView; if (lv.SelectedIndex != -1) { ListViewItem li = lv.SelectedItem as ListViewItem; switch (li.Name) { case "Home": //osvezava se lista projekata ((ApplicationViewModel)this.DataContext).CurrentPageViewModel = ((ApplicationViewModel)this.DataContext).PageViewModels[0]; ((StartViewModel)(((ApplicationViewModel)this.DataContext).CurrentPageViewModel)).OsveziListuProjekata(); ((ApplicationViewModel)this.DataContext).PostaviCurrentViewModel(); this.ProjekatDugmiciManage(false, ""); break; case "Table": ((ApplicationViewModel)this.DataContext).PostaviTrenutniProjekat(); // u zavisnosti da li se kreira ili je kreiran projekat treba drugacije da se prikazu dugmici if (((ApplicationViewModel)this.DataContext).TrenutniProjekat != null) { if (((ApplicationViewModel)this.DataContext).TrenutniProjekat.Id == 0) { this.ProjekatDugmiciManage(true, "create"); } else { this.ProjekatDugmiciManage(true, "open"); } } break; case "Settings": //za izmenu jezika BiranjeJezika Jezik = new BiranjeJezika(); if (Jezik.ShowDialog() == true) { if (Jezik.Jezik.Equals("EN") && Globals.Jezik.Equals("RS")) { Globals.Jezik = "EN"; LoginDemo.App.SelectCulture("en"); } else if (Jezik.Jezik.Equals("RS") && Globals.Jezik.Equals("EN")) { Globals.Jezik = "RS"; LoginDemo.App.SelectCulture("sr"); } } Jezik.Close(); break; case "Account": KorisnikDetalji kd = new KorisnikDetalji(); if (kd.ShowDialog() == true) { if (kd.DetaljiIliSifra) { try { PKorisnik.PromeniDetalje(Korisnik.KorisnickoIme, kd.Ime, kd.Prezime, kd.Kompanija); PKorisnik.Ucitaj_Podatke(); } catch (OracleException oraError) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString())); } catch (OracleException err) { System.Windows.MessageBox.Show("Greska"); } } } else { try { PKorisnik.PromeniLozinku(Korisnik.KorisnickoIme, kd.NovaSifra.Password); } catch (OracleException oraError) { try { System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString())); } catch (OracleException err) { System.Windows.MessageBox.Show("Greska"); } } } } kd.Close(); break; case "Logout": ((ApplicationViewModel)this.DataContext).AppView.Hide(); ((ApplicationViewModel)this.DataContext).mainViewModel.ShowAction(); ((ApplicationViewModel)this.DataContext).AppView.Close(); break; default: MessageBox.Show("" + li.Name); break; } lv.SelectedIndex = -1; } }