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