Example #1
0
        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));
            }
        }
Example #2
0
        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));
            }
        }