public IActionResult Create(Poslovi poslovi) { logger.LogTrace(JsonSerializer.Serialize(poslovi), new JsonSerializerOptions { IgnoreNullValues = true }); if (ModelState.IsValid) //ako je model valjan može raditi jer smo u leyout dodali jqueryvalidate i validation unbotrusive { try { ctx.Add(poslovi); //kontekst ctx.SaveChanges(); //dodajemo u bazu logger.LogInformation(new EventId(1000), $"Posao {poslovi.Naziv} dodana."); TempData[Constants.Message] = $"Posao {poslovi.Naziv} uspješno dodana."; //pohranjuje podatke u session i brišu se nakon korištenja/stvorili Constants.cs za ove TempData[Constants.ErrorOccurred] = false; return(RedirectToAction(nameof(Index))); } catch (Exception exc) { logger.LogError("Pogreška prilikom dodavanje novog posla: {0}", exc.CompleteExceptionMessage()); ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); PrepareDropDownLists(); return(View(poslovi)); } } else { PrepareDropDownLists(); return(View(poslovi)); } }
public async Task <IActionResult> Update(int id, int page = 1, int sort = 1, bool ascending = true) { //za različite mogućnosti ažuriranja pogledati //attach, update, samo id, ... //https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/crud#update-the-edit-page try { Poslovi poslovi = await ctx.Poslovi.FindAsync(id); if (poslovi == null) { return(NotFound("Neispravna oznaka posla: " + id)); } PrepareDropDownLists(); if (await TryUpdateModelAsync <Poslovi>(poslovi, "", //čeka do se ne izvriši ne ide dalje, a drugi ide dalje d => d.Naziv, d => d.Mjesto, d => d.IdNatječaji, d => d.IdUsluge, d => d.VrijemeTrajanja )) { ViewBag.Page = page; ViewBag.Sort = sort; ViewBag.Ascending = ascending; try { await ctx.SaveChangesAsync(); TempData[Constants.Message] = "Posao ažuriran."; TempData[Constants.ErrorOccurred] = false; return(RedirectToAction(nameof(Index), new { page, sort, ascending })); } catch (Exception exc) { ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); return(View(poslovi)); } } else { ModelState.AddModelError(string.Empty, "Podatke o poslu nije moguće povezati s forme"); return(View(poslovi)); } } catch (Exception exc) { TempData[Constants.Message] = exc.CompleteExceptionMessage(); TempData[Constants.ErrorOccurred] = true; return(RedirectToAction(nameof(Edit), id)); } }