Exemplo n.º 1
0
        public IActionResult IzmjeniKnjigu(int id)
        {
            var knjiga = _db.EKnjige.SingleOrDefault(x => x.EKnjigaID == id);

            KnjigaEditVM model = new KnjigaEditVM
            {
                EKnjigaId    = knjiga.EKnjigaID,
                Naziv        = knjiga.Naziv,
                Cijena       = knjiga.Cijena,
                Opis         = knjiga.Opis,
                AutoriID     = _db.EKnjigaAutori.Where(x => x.EKnjigaID == id).Select(x => x.AutorID).ToArray(),
                KategorijeID = _db.EKnjigaKategorije.Where(x => x.EKnjigaID == id).Select(x => x.KategorijaID).ToArray(),
                TipoviId     = _db.EKnjigaTipovi.Where(x => x.EKnjigaID == id).Select(x => x.TipFajlaID).ToArray(),

                Autori = _db.Autori.Select(k => new SelectListItem
                {
                    Value = k.AutorID.ToString(),
                    Text  = k.Ime + " " + k.Prezime
                }).ToList(),

                Tipovi = _db.TipFajlova.Select(t => new SelectListItem
                {
                    Value = t.TipFajlaID.ToString(),
                    Text  = t.Naziv
                }).ToList(),

                Kategorije = _db.Kategorije.Select(k => new SelectListItem
                {
                    Value = k.KategorijaID.ToString(),
                    Text  = k.Naziv
                }).ToList()
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> IzmjeniKnjigu(KnjigaEditVM model)
        {
            var knjiga = _db.EKnjige.SingleOrDefault(x => x.EKnjigaID == model.EKnjigaId);

            if (model.TipoviId != null)
            {
                var tipovi   = _db.TipFajlova;
                var pdfTipId = tipovi.SingleOrDefault(x => x.Naziv == "PDF").TipFajlaID;
                var mp3TipId = tipovi.SingleOrDefault(x => x.Naziv == "MP3").TipFajlaID;

                if (model.PdfByte == null && model.TipoviId.Contains(pdfTipId) && string.IsNullOrEmpty(knjiga.PdfPath))
                {
                    ModelState.AddModelError("PdfByte", "PDF fajl je obavezan");
                }

                if (model.Mp3Byte == null && model.TipoviId.Contains(mp3TipId) && string.IsNullOrEmpty(knjiga.Mp3Path))
                {
                    ModelState.AddModelError("Mp3Byte", "MP3 fajl je obavezan");
                }

                if (model.PdfByte != null && !model.TipoviId.Contains(pdfTipId))
                {
                    ModelState.AddModelError("PdfByte", "Niste odabrali tip fajla PDF za uneseni PDF dokument");
                }

                if (model.Mp3Byte != null && !model.TipoviId.Contains(mp3TipId))
                {
                    ModelState.AddModelError("Mp3Byte", "Niste odabrali tip fajla MP3 za uneseni MP3 fajl");
                }
            }

            if (!ModelState.IsValid)
            {
                model.Autori = _db.Autori.Select(k => new SelectListItem
                {
                    Value = k.AutorID.ToString(),
                    Text  = k.Ime + " " + k.Prezime
                }).ToList();

                model.Tipovi = _db.TipFajlova.Select(t => new SelectListItem
                {
                    Value = t.TipFajlaID.ToString(),
                    Text  = t.Naziv
                }).ToList();

                model.Kategorije = _db.Kategorije.Select(k => new SelectListItem
                {
                    Value = k.KategorijaID.ToString(),
                    Text  = k.Naziv
                }).ToList();
                Response.StatusCode = 400;
                return(PartialView(model));
            }

            knjiga.Naziv  = model.Naziv;
            knjiga.Cijena = model.Cijena;
            knjiga.Opis   = model.Opis;

            if (model.SlikaByte != null)
            {
                knjiga.Slika = await _fileManager.Save(model.SlikaByte, "/Slike", $"{knjiga.Naziv}-{Guid.NewGuid()}.png");
            }

            if (model.PdfByte != null)
            {
                knjiga.PdfPath = await _fileManager.Save(model.PdfByte, "/PdfFajlovi", $"{knjiga.Naziv}-{Guid.NewGuid()}.pdf");
            }

            if (model.Mp3Byte != null)
            {
                knjiga.Mp3Path = await _fileManager.Save(model.Mp3Byte, "/Mp3Fajlovi", $"{knjiga.Naziv}-{Guid.NewGuid()}.mp3");
            }

            _db.EKnjige.Update(knjiga);
            _db.SaveChanges();

            var knjige = _db.EKnjigaAutori.Where(x => x.EKnjigaID == model.EKnjigaId);

            _db.EKnjigaAutori.RemoveRange(knjige);
            foreach (var autorID in model.AutoriID)
            {
                var autor = new EKnjigeAutor
                {
                    AutorID   = autorID,
                    EKnjigaID = knjiga.EKnjigaID
                };
                _db.EKnjigaAutori.Add(autor);
            }

            var tipoviKnjiga = _db.EKnjigaTipovi.Where(x => x.EKnjigaID == model.EKnjigaId);

            _db.EKnjigaTipovi.RemoveRange(tipoviKnjiga);
            foreach (var tipFajlaId in model.TipoviId)
            {
                var tipFajla = new EKnjigaTip
                {
                    TipFajlaID = tipFajlaId,
                    EKnjigaID  = knjiga.EKnjigaID
                };
                _db.EKnjigaTipovi.Add(tipFajla);
            }

            var kategorije = _db.EKnjigaKategorije.Where(x => x.EKnjigaID == model.EKnjigaId);

            _db.EKnjigaKategorije.RemoveRange(kategorije);
            foreach (var kategorijaID in model.KategorijeID)
            {
                var kategorija = new EKnjigaKategorija
                {
                    KategorijaID = kategorijaID,
                    EKnjigaID    = knjiga.EKnjigaID
                };
                _db.EKnjigaKategorije.Add(kategorija);
            }

            _db.SaveChanges();
            return(Ok());
        }