コード例 #1
0
        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 }));
            }
        }
コード例 #2
0
        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 }));
            }
        }