Exemplo n.º 1
0
        public IActionResult DodajIzmijeni(int?id)
        {
            var model = new DodajIzmijeniReceptViewModel()
            {
                ReceptId   = id ?? 0,
                Kategorije = new List <SelectListItem>()
            };

            if (id != null)
            {
                var recept = _receptRepo.Get(id.Value);
                model.Kategorija = recept.Kategorija;
                model.Naziv      = recept.Naziv;
                model.Priprema   = recept.Priprema;
                model.Privatan   = recept.Privatan;
                model.Sastav     = recept.Sastav;
                model.SlikaURL   = recept.SlikaURL;
            }

            model.Kategorije = KategorijeRecepta.GetKategorije(model.Kategorija);

            return(View(model));
        }
Exemplo n.º 2
0
        public IActionResult DodajIzmijeni(DodajIzmijeniReceptViewModel model)
        {
            var    slikaUrl   = model.SlikaURL;
            var    korisnikId = int.Parse(User.FindFirst(x => x.Type == "Id")?.Value);
            Recept recept     = null;

            if (model.ReceptId != 0)
            {
                recept = _receptRepo.Get(model.ReceptId);
            }

            if (recept != null && recept.KorisnikId != korisnikId)
            {
                return(View(model));
            }

            if (string.IsNullOrEmpty(slikaUrl))
            {
                if (model.Slika == null)
                {
                    ModelState.AddModelError("Slika", "Molimo da odaberete sliku");
                    return(View(model));
                }

                if (model.Slika.Length > MAX_UPLOAD_SIZE * 1024 * 1024)
                {
                    ModelState.AddModelError("Slika", $"Maksimalna veličina slike ne smije biti veća od {MAX_UPLOAD_SIZE}MB");
                    return(View(model));
                }

                if (ImageFormat.GetImageFormat(model.Slika) == null)
                {
                    ModelState.AddModelError("Slika", "Podržane ekstenzije fajla su: .bmp, .png, .tiff, .tiff2, .jpg, .jpeg");
                    return(View(model));
                }

                slikaUrl = FileHelpers.GetUniqueFileName(model.Slika.FileName);
                var uploadFolder = Path.Combine(_hostingEnvironment.WebRootPath, "slike-recepata");
                var filePath     = Path.Combine(uploadFolder, slikaUrl);

                if (!Directory.Exists(uploadFolder))
                {
                    Directory.CreateDirectory(uploadFolder);
                }

                if (recept != null)
                {
                    System.IO.File.Delete(Path.Combine(uploadFolder, recept.SlikaURL));
                }

                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    model.Slika.CopyTo(stream);
                }
            }

            _receptRepo.Update(new Recept()
            {
                ReceptId    = model.ReceptId,
                DatumObjave = recept == null ? DateTime.Now : recept.DatumObjave,
                Kategorija  = model.Kategorija,
                KorisnikId  = korisnikId,
                Naziv       = model.Naziv,
                Priprema    = _htmlSanitizer.Sanitize(model.Priprema),
                Privatan    = model.Privatan,
                Sastav      = model.Sastav,
                SlikaURL    = slikaUrl
            });
            _receptRepo.SaveChanges();

            TempData["poruka"] = "Recept uspješno sačuvan.";

            return(RedirectToAction("Index", "Home"));
        }