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