public async Task <IActionResult> Create(int?id) { GrupaVMs.SlikaCreateVM model = new GrupaVMs.SlikaCreateVM(); if (id != null && id != 0) { var s = await _db.Slike.FindAsync(id); if (s != null) { model.SlikaVM = new GrupaVMs.SlikaVM() { SlikaId = s.SlikaId, Naziv = s.Naziv, KursKategorijaId = s.KursKategorijaId, SlikaUrl = s.SlikaUrl }; } } model.KursKategorije = await _db.KursKategorije.AsNoTracking().Select(s => new SelectListItem() { Text = s.Naziv, Value = s.KursKategorijaId.ToString() }).ToListAsync(); return(PartialView("_Create", model)); }
public async Task <IActionResult> Create(GrupaVMs.SlikaCreateVM model) { ModelState.Remove("SlikaVM.SlikaId"); if (ModelState.IsValid) { if (model.SlikaVM.SlikaId == 0 && model.SlikaVM.SlikaFile == null && string.IsNullOrEmpty(model.SlikaVM.SlikaUrl)) { ModelState.AddModelError("", "Morate unijeti ili url slike ili sliku."); } else { int destWidth = _config.GetValue <int>("MySettings:imgWidth"), destHeight = _config.GetValue <int>("MySettings:imgHeight"); try { Slika s = new Slika() { SlikaId = model.SlikaVM.SlikaId, Naziv = model.SlikaVM.Naziv, KursKategorijaId = model.SlikaVM.KursKategorijaId, SlikaUrl = model.SlikaVM.SlikaUrl,//TODO:Provjeriti da li su unesena oba urla ili ukinuti url }; if (model.SlikaVM.SlikaFile != null) { if (model.SlikaVM.SlikaFile.Length < 1048576) { Image image = Image.FromStream(model.SlikaVM.SlikaFile.OpenReadStream(), true, true); image = image.Resize(destWidth, destHeight).Crop(destWidth, destHeight); s.SlikaFile = image.ToByteArray(); Image thumbNail = image.GetThumbnailImage(100, 100, null, new IntPtr()); s.SlikaThumb = thumbNail.ToByteArray(); } else { ModelState.AddModelError("SlikaVM.SlikaFile", "Slika mora biti veličine do 1MB."); } } if (ModelState.IsValid) { string alertDetails = "Uspješno "; string alertSummary = $"Slika: {s.Naziv} "; if (s.SlikaId == 0) { _db.Slike.Add(s); alertDetails += "dodana u bazu."; } else { _db.Slike.Attach(s); var entry = _db.Entry(s); entry.State = EntityState.Modified; if (s.SlikaFile == null) { entry.Property(p => p.SlikaFile).IsModified = false; entry.Property(p => p.SlikaThumb).IsModified = false; } alertDetails = "editovana."; } _db.SaveChanges(); return(StatusCode(201, new { Alert = new Alert(Severity.success, alertDetails, alertSummary) })); } } catch (Exception e) { return(BadRequest("Došlo je do greške prilikom snimanja podatka u bazu.; " + e.Message)); } } } model.KursKategorije = await _db.KursKategorije.AsNoTracking().Select(s => new SelectListItem() { Text = s.Naziv, Value = s.KursKategorijaId.ToString(), Selected = s.KursKategorijaId == model.SlikaVM.KursKategorijaId }).ToListAsync(); return(PartialView("_Create", model)); }