public async Task <IActionResult> UpdateDetail(int id) { try { Pregled pregled = await ctx.Pregled.FindAsync(id); OsobaPregled osobaPregled = await ctx.OsobaPregled.FindAsync(id); PregledCreateViewModel pc = new PregledCreateViewModel { Pregled = pregled, OsobaPregled = osobaPregled }; if (pregled == null) { logger.LogError($"Ne postoji pregled s tom šifrom {id}"); return(NotFound($"Ne postoji pregled s tom šifrom {id}")); } bool ok = await TryUpdateModelAsync <PregledCreateViewModel>(pc, "", p => p.Pregled, p => p.OsobaPregled); if (ok) { if (ctx.Osoba.Find(osobaPregled.IdentifikacijskiBroj) != null) { try { TempData[Constants.Message] = $"Pregled {pregled.SifraPregleda} uspješno ažuriran."; TempData[Constants.ErrorOccurred] = false; logger.LogInformation($"Pregled {pregled.SifraPregleda} uspješno ažuriran."); await ctx.SaveChangesAsync(); return(RedirectToAction(nameof(Details), new { id })); } catch (Exception exc) { ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); logger.LogError($"Greška prilikom ažuriranja pregleda {exc.CompleteExceptionMessage()}"); prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pc)); } } else { ModelState.AddModelError(string.Empty, "Ne postoji osoba s tim identifikacijskim brojem."); logger.LogError($"Greška prilikom ažuriranja pregleda. Ne postoji osoba s tim identifikacijskim brojem."); prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pc)); } } else { ModelState.AddModelError(string.Empty, "Podatke o pregledu nije moguće povezati s forme."); logger.LogError($"Greška prilikom ažuriranja pregleda. Podatke o pregledu nije moguće povezati s forme."); prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pc)); } } catch (Exception exc) { TempData[Constants.Message] = exc.CompleteExceptionMessage(); TempData[Constants.ErrorOccurred] = true; logger.LogError($"Greška prilikom ažuriranja pregleda. {exc.CompleteExceptionMessage()}"); return(RedirectToAction(nameof(EditDetail), new { id })); } }
public async Task <IActionResult> Update(int id, int page = 1, int sort = 1, bool ascending = true) { try { Pregled pregled = await ctx.Pregled.FindAsync(id); OsobaPregled osobaPregled = await ctx.OsobaPregled.FindAsync(id); PregledCreateViewModel pc = new PregledCreateViewModel { Pregled = pregled, OsobaPregled = osobaPregled }; if (pregled == null) { return(NotFound($"Ne postoji pregled s tom šifrom {id}")); } ViewBag.page = page; ViewBag.sort = sort; ViewBag.ascending = ascending; bool ok = await TryUpdateModelAsync <PregledCreateViewModel>(pc, "", p => p.Pregled, p => p.OsobaPregled); if (ok) { if (ctx.Osoba.Find(osobaPregled.IdentifikacijskiBroj) != null) { try { TempData[Constants.Message] = $"Pregled {pregled.SifraPregleda} uspješno ažuriran."; TempData[Constants.ErrorOccurred] = false; await ctx.SaveChangesAsync(); logger.LogInformation($"Pregled {pregled.SifraPregleda} uspješno ažuriran."); return(RedirectToAction(nameof(Index), new { page, sort, ascending })); } catch (Exception exc) { logger.LogError($"Pogreška prilikom ažuriranja pregleda {exc.CompleteExceptionMessage()} "); ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); return(View(pc)); } } else { logger.LogError($"Ne postoji osoba s tim identifikacijskim brojem."); ModelState.AddModelError(string.Empty, "Ne postoji osoba s tim identifikacijskim brojem."); return(View(pc)); } } else { logger.LogError($"Podatke o pregledu nije moguće povezati s forme."); ModelState.AddModelError(string.Empty, "Podatke o pregledu nije moguće povezati s forme."); return(View(pc)); } } catch (Exception exc) { TempData[Constants.Message] = exc.CompleteExceptionMessage(); TempData[Constants.ErrorOccurred] = true; logger.LogError($"Pogreška prilikom ažuriranja pregleda {exc.CompleteExceptionMessage()} "); return(RedirectToAction(nameof(Edit), new { page, sort, ascending })); } }