コード例 #1
0
        public async Task <ActionResult> Detale(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var ksiazka = await _context.Ksiazki.FirstOrDefaultAsync(m => m.id_ksiazki == id);

            ksiazka.Wydawnictwa = await _context.Wydawnictwa.FirstOrDefaultAsync(m => m.id_wydawnictwa == ksiazka.id_wydawnictwa);

            if (ksiazka == null)
            {
                return(NotFound());
            }

            KsiazkaViewModel ksiazkaVM = new KsiazkaViewModel();

            ksiazkaVM.id_ksiazki     = ksiazka.id_ksiazki;
            ksiazkaVM.id_wydawnictwo = ksiazka.id_wydawnictwa;
            ksiazkaVM.tytuł          = ksiazka.tytuł;
            ksiazkaVM.data_wydania   = ksiazka.data_wydania;

            ksiazkaVM.Wydawnictwa = await _context.Wydawnictwa.FirstOrDefaultAsync(m => m.id_wydawnictwa == ksiazka.id_wydawnictwa);

            //kategorie
            var kategorie_ksiazki = await _context.Kategorie_Ksiazki.Where(m => m.id_ksiazki == ksiazka.id_ksiazki).ToListAsync();

            Kategorie     kategoria      = new Kategorie();
            List <string> listaKategorii = new List <string>();

            foreach (Kategorie_Ksiazki k in kategorie_ksiazki)
            {
                kategoria = await _context.Kategorie.FirstOrDefaultAsync(m => m.id_kategorii == k.id_kategorii);

                listaKategorii.Add(kategoria.nazwa);
            }
            ksiazkaVM.kategorieLista = listaKategorii;

            //autorzy
            var autorzy_ksiazki = await _context.Autorzy_Ksiazki.Where(m => m.id_ksiazki == ksiazka.id_ksiazki).ToListAsync();

            Autor         autor        = new Autor();
            List <string> listaAutorow = new List <string>();
            string        autorRecord;

            foreach (Autorzy_Ksiazki a in autorzy_ksiazki)
            {
                autor = await _context.Autor.FirstOrDefaultAsync(m => m.id_autor == a.id_autora);

                autorRecord = autor.imie + " " + autor.nazwisko;
                listaAutorow.Add(autorRecord);
            }
            ksiazkaVM.autorzyLista = listaAutorow;

            return(View(ksiazkaVM));

            // return View();
        }
コード例 #2
0
 public KsiazkaPage()
 {
     InitializeComponent();
     BindingContext = _viewModel = new KsiazkaViewModel();
 }
コード例 #3
0
        public async Task <IActionResult> Stworz(KsiazkaViewModel ksiazkaVM)
        {
            var wydawnictwo = await _context.Wydawnictwa.FirstOrDefaultAsync(m => m.id_wydawnictwa == ksiazkaVM.id_wydawnictwo);

            Ksiazki ksiazka = new Ksiazki();

            ksiazka.id_ksiazki     = ksiazkaVM.id_ksiazki;
            ksiazka.id_wydawnictwa = wydawnictwo.id_wydawnictwa;
            ksiazka.tytuł          = ksiazkaVM.tytuł;
            ksiazka.data_wydania   = ksiazkaVM.data_wydania;

            ksiazka.Wydawnictwa = wydawnictwo;

            //kategorie_ksiazki

            string[]  splitKategorie = ksiazkaVM.kategorie.Split(new Char[] { ',' });
            Kategorie kategoria      = new Kategorie();

            foreach (string k in splitKategorie)
            {
                Kategorie_Ksiazki kategorie_ksiazki = new Kategorie_Ksiazki();
                kategoria = await _context.Kategorie.FirstOrDefaultAsync(m => m.nazwa == k);

                kategorie_ksiazki.id_kategorii = kategoria.id_kategorii;
                kategorie_ksiazki.id_ksiazki   = ksiazkaVM.id_ksiazki;
                kategorie_ksiazki.Ksiazki      = ksiazka;
                kategorie_ksiazki.Kategorie    = kategoria;
                _context.Kategorie_Ksiazki.Add(kategorie_ksiazki);
            }

            //autorzy_ksiazki

            string[] splitAutorzy = ksiazkaVM.autorzy.Split(new Char[] { ',' });
            Autor    autor        = new Autor();

            string[] splitWewn;
            foreach (string a in splitAutorzy)
            {
                Autorzy_Ksiazki autorzy_ksiazki = new Autorzy_Ksiazki();
                splitWewn = a.Split(new Char[] { ' ' });
                autor     = await _context.Autor.FirstOrDefaultAsync(m => m.nazwisko == splitWewn[1] && m.imie == splitWewn[0]);

                autorzy_ksiazki.id_autora  = autor.id_autor;
                autorzy_ksiazki.id_ksiazki = ksiazka.id_ksiazki;
                autorzy_ksiazki.Autor      = autor;
                autorzy_ksiazki.Ksiazki    = ksiazka;
                _context.Autorzy_Ksiazki.Add(autorzy_ksiazki);
            }

            try
            {
                if (ModelState.IsValid)
                {
                    _context.Ksiazki.Add(ksiazka);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            catch (DataException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }

            return(RedirectToAction("Index"));
        }
コード例 #4
0
        public ActionResult Create(KsiazkaViewModel kvm)
        {
            if (ModelState.IsValid)
            {
                var rozbudowa = Path.GetExtension(kvm.Zawartosc.FileName);

                Ksiazka ksiazka = new Ksiazka()
                {
                    DodajDate    = DateTime.Now,
                    Naklad       = kvm.Naklad,
                    Id_Kategorii = kvm.Id_Kategorii,
                    Rok          = kvm.Rok,
                    Tytul        = kvm.Tytul,
                    ISBN         = kvm.ISBN,
                    Opis         = kvm.Opis,
                    Pisarze      = new List <KsiazkaPisarz>(),
                    Etykiety     = new List <KsiazkaEtykieta>()
                };
                db.Ksiazki.Add(ksiazka);
                db.SaveChanges();
                var nazwapliku = ksiazka.Id_Ksiazka + "zawartosc" + rozbudowa;
                ksiazka.Zawartosc = nazwapliku;
                var directory = Path.Combine(Server.MapPath("~/App_Data/uploads"), ksiazka.Id_Ksiazka.ToString());
                Directory.CreateDirectory(directory);
                var sciezka = Path.Combine(directory, nazwapliku);
                kvm.Zawartosc.SaveAs(sciezka);
                db.SaveChanges();
                for (int i = 0; i < kvm.WybraniPisarze.Length; i++)
                {
                    var id     = kvm.WybraniPisarze[i];
                    var pisarz = db.Pisarze.FirstOrDefault(x => x.Id_Pisarza == id);
                    if (pisarz != null)
                    {
                        var y = new KsiazkaPisarz()
                        {
                            Id_Ksiazka       = ksiazka.Id_Ksiazka,
                            Id_KsiazkaPisarz = pisarz.Id_Pisarza
                        };
                        db.KsiakaPisarze.Add(y);
                        db.SaveChanges();
                    }
                }
                for (int i = 0; i < kvm.WybraneEtykiety.Length; i++)
                {
                    var id       = kvm.WybraneEtykiety[i];
                    var etykiety = db.Etykiety.FirstOrDefault(x => x.Id_Etykieta == id);
                    if (etykiety != null)
                    {
                        var ke = new KsiazkaEtykieta()
                        {
                            Id_Ksiazki  = ksiazka.Id_Ksiazka,
                            Id_Etykiety = etykiety.Id_Etykieta
                        };
                        db.KsiazkaEtykiety.Add(ke);
                        db.SaveChanges();
                    }
                }
                db.Entry(ksiazka).State = EntityState.Modified;
                db.SaveChanges();

                for (var i = 0; i < kvm.Pliki.Count; i++)
                {
                    if (kvm.Pliki[i] != null)
                    {
                        Plik plik = new Plik();
                        plik.Id_Ksiazka = ksiazka.Id_Ksiazka;
                        plik.Ksiazka    = ksiazka;
                        plik.Nazwa      = kvm.PlikiNazwy[i];
                        plik.Zrodlo     = kvm.Pliki[i].FileName;
                        kvm.Pliki[i].SaveAs(Path.Combine(directory, kvm.Pliki[i].FileName));
                        db.Pliki.Add(plik);
                        db.SaveChanges();
                    }
                }


                return(RedirectToAction("Index"));
            }


            IEnumerable <SelectListItem> pisarze = from p in db.Pisarze
                                                   select new SelectListItem
            {
                Value = p.Id_Pisarza.ToString(),
                Text  = p.Imie + " " + p.Nazwisko
            };

            ViewBag.Id_Kategorii = new SelectList(db.Kategorie, "KategoriaId", "Nazwa");
            ViewBag.Pisarze      = new SelectList(pisarze, "Value", "Text");
            ViewBag.Etykiety     = new SelectList(db.Etykiety, "EtykietyId", "Nazwa");
            return(View(kvm));
        }