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 })); } }
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 IActionResult Create(PregledCreateViewModel pregledCreate) { if (ModelState.IsValid) { try { if (ctx.Osoba.Find(pregledCreate.OsobaPregled.IdentifikacijskiBroj) != null) { pregledCreate.Pregled.SifraPregleda = (int)NewId(); ctx.Add(pregledCreate.Pregled); pregledCreate.OsobaPregled.SifraPregleda = pregledCreate.Pregled.SifraPregleda; ctx.Add(pregledCreate.OsobaPregled); foreach (var opis in pregledCreate.Simptomi) { var simptom = ctx.Simptom.AsNoTracking().Where(p => p.Opis == opis).FirstOrDefault(); if (simptom != null) { ctx.Add(new PregledSimptom { SifraPregleda = pregledCreate.Pregled.SifraPregleda, SifraSimptoma = simptom.SifraSimptoma }); } } foreach (var opis in pregledCreate.Terapije) { var terapija = ctx.Terapija.AsNoTracking().Where(p => p.OpisTerapije == opis).FirstOrDefault(); if (terapija != null) { ctx.Add(new PregledTerapija { SifraPregleda = pregledCreate.Pregled.SifraPregleda, SifraTerapije = terapija.SifraTerapije }); } } ctx.SaveChanges(); logger.LogInformation($"Pregled {pregledCreate.Pregled.SifraPregleda} dodan."); TempData[Constants.Message] = $"Pregled {pregledCreate.Pregled.SifraPregleda} uspješno dodan."; TempData[Constants.ErrorOccurred] = false; return(RedirectToAction(nameof(Index))); } else { logger.LogError($"Ne postoji osoba s tim identifikacijskim brojem."); TempData[Constants.Message] = $"Ne postoji osoba s tim identifikacijskim brojem."; TempData[Constants.ErrorOccurred] = true; prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pregledCreate)); } } catch (Exception exc) { logger.LogError($"Pogreška prilikom dodavanja pregleda {exc.CompleteExceptionMessage()} "); ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pregledCreate)); } } else { prepareDropDownTerapije(); prepareDropDownSimptomi(); return(View(pregledCreate)); } }