コード例 #1
0
        public async Task <IActionResult> Create(ZapisnikViewModel model)
        {
            if (ModelState.IsValid)
            {
                Zapisnik z = new Zapisnik();
                z.ZapisnikId         = model.ZapisnikId;
                z.IdPovjerenstva     = model.IdPovjerenstva;
                z.PonudaId           = model.IdPonude;
                z.NazivZapisnik      = model.NazivZapisnik;
                z.IdPrethZapisnika   = model.IdPrethZapisnika;
                z.IspravnostZapisnik = model.ispravnostZapisnik;

                foreach (var stavka in model.StavkeZapisnika)
                {
                    StavkaZapisnik novaStavka = new StavkaZapisnik();
                    novaStavka.idOdredba        = stavka.idOdredba;
                    novaStavka.cijenaKršenja    = stavka.cijenaKršenjaOdluke;
                    novaStavka.ispravnostStavka = stavka.ispravnostStavka;
                    z.StavkaZapisniks.Add(novaStavka);
                }

                try
                {
                    ctx.Add(z);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"Zapisnik uspješno dodan. Id={z.ZapisnikId}";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Edit), new { id = z.ZapisnikId }));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Edit(ZapisnikViewModel model, int?position, int page = 1, int sort = 1, bool ascending = true)
        {
            ViewBag.Page      = page;
            ViewBag.Sort      = sort;
            ViewBag.Ascending = ascending;
            ViewBag.Position  = position;
            if (ModelState.IsValid)
            {
                var zapisnik = await ctx.Zapisniks
                               .Include(d => d.StavkaZapisniks)
                               .Where(d => d.ZapisnikId == model.ZapisnikId)
                               .FirstOrDefaultAsync();

                if (zapisnik == null)
                {
                    return(NotFound("Ne postoji zapisnik s id-om: " + model.ZapisnikId));
                }

                if (position.HasValue)
                {
                    page = 1 + position.Value / appSettings.PageSize;
                    await SetPreviousAndNext(position.Value, sort, ascending);
                }

                zapisnik.ZapisnikId         = model.ZapisnikId;
                zapisnik.PonudaId           = model.IdPonude;
                zapisnik.IdPovjerenstva     = model.IdPovjerenstva;
                zapisnik.NazivZapisnik      = model.NazivZapisnik;
                zapisnik.IdPrethZapisnika   = model.IdPrethZapisnika;
                zapisnik.IspravnostZapisnik = model.ispravnostZapisnik;

                List <int> idStavki = model.StavkeZapisnika
                                      .Where(s => s.idStavka > 0)
                                      .Select(s => s.idStavka)
                                      .ToList();
                //izbaci sve koje su nisu više u modelu
                ctx.RemoveRange(zapisnik.StavkaZapisniks.Where(s => !idStavki.Contains(s.idStavke)));

                foreach (var stavka in model.StavkeZapisnika)
                {
                    //ažuriraj postojeće i dodaj nove
                    StavkaZapisnik novaStavka; // potpuno nova ili dohvaćena ona koju treba izmijeniti
                    if (stavka.idStavka > 0)
                    {
                        novaStavka = zapisnik.StavkaZapisniks.First(s => s.idStavke == stavka.idStavka);
                    }
                    else
                    {
                        novaStavka = new StavkaZapisnik();
                        zapisnik.StavkaZapisniks.Add(novaStavka);
                    }
                    // stavka.paramteri su prazni??
                    novaStavka.idStavke         = stavka.idStavka;
                    novaStavka.zapisnikID       = stavka.ZapisnikId;
                    novaStavka.idOdredba        = stavka.idOdredba;
                    novaStavka.ispravnostStavka = stavka.ispravnostStavka;
                    novaStavka.cijenaKršenja    = stavka.cijenaKršenjaOdluke;
                }

                try
                {
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"Zapisnik {zapisnik.ZapisnikId} uspješno ažuriran.";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Edit), new
                    {
                        id = zapisnik.ZapisnikId,
                        position,
                        page,
                        sort,
                        ascending
                    }));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }