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)); }
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()); }