예제 #1
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();
                }
            }
        }
        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();
        }