示例#1
0
        public async Task <IActionResult> DodajKnjigu(KnjigeDodajVM model)
        {
            if (model.PdfByte == null && model.Mp3Byte == null)
            {
                ModelState.AddModelError("PdfByte", "PDF ili mp3 fajl su obavezni");
            }

            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))
                {
                    ModelState.AddModelError("PdfByte", "PDF fajl je obavezan");
                }

                if (model.Mp3Byte == null && model.TipoviId.Contains(mp3TipId))
                {
                    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));
            }

            EKnjiga knjiga = new EKnjiga
            {
                Naziv           = model.Naziv,
                AdministratorID = HttpContext.getKorisnickiNalogAdministrator().AdministratorID,
                Cijena          = model.Cijena,
                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.Add(knjiga);
            _db.SaveChanges();

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

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

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

            _db.SaveChanges();
            return(Ok());
        }
示例#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());
        }