Exemple #1
0
        private async void SacuvajUplate_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var      procenti   = tbProcenti.Text.Split(',');
                double[] nizBrojeva = NizStringovaUNizBrojeva(procenti);
                if (nizBrojeva.Sum() == 100)
                {
                    var dataProvider = new EFCoreDataProvider();
                    int idProjekta   = Helper.TrenutniProjekat.IDProjekta;
                    var stariTrosak  = (await dataProvider.GetGeneralniTrosakAsync(idProjekta))[0];

                    stariTrosak.BrojUplata = nizBrojeva.Count();
                    stariTrosak.Procenti   = string.Join(", ", nizBrojeva);

                    await dataProvider.UpdateGeneralniTrosakAsync(stariTrosak);
                }
                else
                {
                    MessageBox.Show("Neispravno uneti procenti, svi procenti moraju biti brojevi i zbir im mora biti 100%!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Exemple #2
0
        private async void Login()
        {
            IDataProvider dataProvider = new EFCoreDataProvider();
            Korisnik      korisnik     = null;

            try
            {
                korisnik = await dataProvider.LoginIspravan(Username, Password);
            }
            catch (Exception ex)
            {
                await new MessageDialog(ex.ToString()).ShowAsync();
            }

            if (korisnik != default(Korisnik))
            {
                App.TrenutniKorisnik = korisnik;
                frame.Navigate(typeof(MainPage));
            }
            else
            {
                Username = Password = string.Empty;
                await new MessageDialog("Neispravano korisnicko ime ili lozinka!").ShowAsync();
            }
        }
Exemple #3
0
        private async void PopuniListe()
        {
            var dataProvider = new EFCoreDataProvider();

            Referenti = await dataProvider.GetReferentsAsync() as List <Referent>;

            Departmani = await dataProvider.GetDepartmaniAsync() as List <Departman>;
        }
        private async void PopuniStudenteIPredmeteAsync()
        {
            var dataProvider = new EFCoreDataProvider();

            Studenti = await dataProvider.GetStudentsAsync() as List <Student>;

            Predmeti = await dataProvider.GetPredmetiAsync() as List <Predmet>;
        }
Exemple #5
0
        private async Task UcitajProcente() // Ucitava procente u tbProcenti
        {
            var dataProvider = new EFCoreDataProvider();

            idProjekta = Helper.TrenutniProjekat.IDProjekta;

            // Ucitava i podatke u uplatama iz tabele generalniTrosak i pamti u tbProcenti
            string uplate = (await dataProvider.GetGeneralniTrosakAsync(idProjekta))[0].Procenti;

            tbProcenti.Text = uplate;
        }
Exemple #6
0
        private async Task UcitajTroskove()
        {
            var dataProvider = new EFCoreDataProvider();

            idProjekta    = Helper.TrenutniProjekat.IDProjekta;
            listaTroskova = await dataProvider.GetTroskoveProjektaAsync(idProjekta) as List <Trosak>;

            // Za grupisanje u datagridu itemssource se veze za ListCollectionView
            ListCollectionView collection = new ListCollectionView(listaTroskova);

            //Na osnovu cega se vrsi grupisanje
            collection.GroupDescriptions.Add(new PropertyGroupDescription("Kategorija"));
            collection.GroupDescriptions.Add(new PropertyGroupDescription("Podkategorija"));
            MyDataGrid.ItemsSource = collection;
        }
Exemple #7
0
        private async void ShowHideDetails(object sender, System.Windows.RoutedEventArgs e)
        {
            Dokumentacija doc          = DataGrid.SelectedItem as Dokumentacija;
            var           dataProvider = new EFCoreDataProvider();

            if (await dataProvider.DokumentImaPDFFajl(doc.IDDokumenta))  // Otvori taj fajl, da li je StatusDokumenta isto kao i to Da li ima pdf fajl??? za sad jeste
            {
                string filename = "temp.pdf";
                File.WriteAllBytes(filename, (await dataProvider.GetPDFAsync(doc.IDDokumenta)).PDFFajl); //ovo kreira lokalni pdf fajl od bajtova
                System.Diagnostics.Process.Start(filename);                                              // Otvara ga u default pdf vieweru
            }
            else // Prilozi pdf fajl
            {
                byte[]         a;
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = "PDF dokument | *.pdf";

                if (dlg.ShowDialog() == true)
                {
                    // Kreira se i prikazu progressWindows sa porukom dok se vrsi slanje dokumenta na server
                    var progressWindow = new ProgressWindow("Upload PDF dokumenta");
                    progressWindow.Show();

                    string path = dlg.FileName.ToString();
                    a = File.ReadAllBytes(path); //ovo pretvara izabrani fajl u bajtove
                    // Dodavanje novog PDF u tabelu
                    await dataProvider.AddPDFAsync(new PDF
                    {
                        IDDokumenta = doc.IDDokumenta,
                        PDFFajl     = a
                    }, Helper.TrenutniKorisnik);

                    //Update dokumenta
                    doc.StatusDokumenta = true;
                    doc.Datum           = DateTime.Now.ToString();
                    await dataProvider.UpdateDokumentAsync(doc);

                    // ProgressWindow moze da se zatvori
                    progressWindow.Close();

                    // Update podataka koji se prikazuju u dataGridu
                    ProveriKojiDokumentiImajuUslov();
                    UpdateDataGrid();
                }
            }
        }
Exemple #8
0
        private async Task UcitajKorisnike()
        {
            var dataProvider = new EFCoreDataProvider();
            IList <Korisnik> temp;

            if (zaSveProjekte)
            {
                temp = await dataProvider.GetKorisniciAsync();
            }
            else
            {
                temp = await dataProvider.GetKorisnikeProjektaAsync(Helper.TrenutniProjekat.IDProjekta);
            }

            foreach (Korisnik k in temp)
            {
                Korisnici.Add(k);
            }
        }
        private async void Potvrdi_Click(object sender, RoutedEventArgs e)
        {
            var dataProvider = new EFCoreDataProvider();

            // Dodavanje podataka za trenutni projekat
            ZapocetiProjekat.DatumPocetka   = dpDatumPocetkaProjekta.DisplayDate.ToShortDateString();
            ZapocetiProjekat.StanjeProjekta = "Aktivan";

            // Kreiranje i prikazivanje progress windowa
            var progressWindow = new ProgressWindow("Kreiranje projekta u toku...");

            progressWindow.Show();

            // U bazi se kreira novi projekat i za njega se kreiraju odgovarajuca dokumenta
            var listaDokumenata = GetListuDokumenata(ZapocetiProjekat.VrstaProjekta);
            await dataProvider.KreirajProjekatIDodajDokumenta(ZapocetiProjekat, listaDokumenata);

            // Unose se generalni troskovi - neka default vrednosti, 1 uplata, ukupnonovca = 100
            await dataProvider.AddGeneralniTrosakAsync(new GeneralniTrosak { IDProjekta = ZapocetiProjekat.IDProjekta, BrojUplata = 1, Procenti = "100", UkupnoNovca = 100 });

            // TODO: Ovde mogu i ostali atributi informaicje o lokaciji da se unose

            if (informacijaOLokaciji != null) // Ako je vec uneta informacija o lokaciji onda se ona pamti u bazi pri kreiranju projekta
            {
                await dataProvider.AddPDFAsync(new PDF {
                    IDDokumenta = listaDokumenata[0].IDDokumenta,
                    PDFFajl     = informacijaOLokaciji
                }, Helper.TrenutniKorisnik);
            }

            // Zatvaranja ProgressWindow-a
            progressWindow.Close();

            // Prelazak na ClanoviProjektaPage
            var parent = (Parent as MainWindow);

            Helper.TrenutniProjekat = ZapocetiProjekat;
            parent.Content          = new ClanoviProjektaPage();
        }
Exemple #10
0
        private async void ZapamtiIzmene_Click(object sender, RoutedEventArgs e)
        {
            var dataProvider   = new EFCoreDataProvider();
            var korisniciUBazi = await dataProvider.GetKorisnikeProjektaAsync(projectID) as List <Korisnik>;

            // Izbaci iz baze one koji vise nisu tu
            foreach (Korisnik k in korisniciUBazi)
            {
                if (!KorisniciKojiRadeNaProjektu.Contains(k))
                {
                    await dataProvider.DeleteInterakcijaAsync(k.KorisnickoIme, projectID);
                }
            }

            // Dodaj one koji vec nisu bili u bazi
            foreach (Korisnik k in KorisniciKojiRadeNaProjektu)
            {
                if (!korisniciUBazi.Contains(k))
                {
                    await dataProvider.AddInterakcijaAsync(k.KorisnickoIme, projectID);
                }
            }
        }
Exemple #11
0
        private async void Sacuvaj_Click(object sender, RoutedEventArgs e)
        {
            // Kad se klikne dugme sacuvaj treba da zna da li treba da vrsi update ili add u bazi
            // To odlucuje na osnovu IDTroska, ako je 0 onda ga jos nema u bazi treba add, ako je razlicit od 0 onda se vrsi update

            var trosak = DetaljiTroska.Trosak;

            trosak.IDProjekta = Helper.TrenutniProjekat.IDProjekta;

            var dataProvider = new EFCoreDataProvider();

            if (trosak.IDTroska == 0)
            {
                // ADD
                await dataProvider.AddTrosakAsync(trosak, Helper.TrenutniKorisnik);
            }
            else
            {
                // UPDATE
                await dataProvider.UpdateTrosakAsync(trosak);
            }
            // Azuriraj tabelu
            await UcitajTroskove();
        }