Beispiel #1
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));
            }
        }
Beispiel #2
0
        public async Task <IActionResult> Edit(PonudaViewModel model, int page = 1, int sort = 1, bool ascending = true)
        {
            ViewBag.Page      = page;
            ViewBag.Sort      = sort;
            ViewBag.Ascending = ascending;
            if (ModelState.IsValid)
            {
                var ponuda = await ctx.Ponuda
                             .Include(d => d.PonDokumentis)
                             .Where(d => d.PonudaId == model.PonudaId)
                             .FirstOrDefaultAsync();

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

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



                ponuda.PonudaId         = model.PonudaId;
                ponuda.EvidBrojNatječaj = model.EvidBrojNatječaj;
                ponuda.Text             = model.Text;
                ponuda.Naslov           = model.Naslov;
                ponuda.OibPonuditelj    = model.OibPonuditelj;

                List <int> DoksId = model.doks
                                    .Where(s => s.DokumentId > 0)
                                    .Select(s => s.DokumentId)
                                    .ToList();
                //izbaci sve koje su nisu više u modelu
                ctx.RemoveRange(ponuda.PonDokumentis.Where(s => !DoksId.Contains(s.DokumentId)));

                ctx.RemoveRange(ctx.Dokuments.Where(s => !DoksId.Contains(s.DokumentId)));

                foreach (var dokument1 in model.doks)
                {
                    //ažuriraj postojeće i dodaj nove
                    Dokument noviDokkument; // potpuno nova ili dohvaćena ona koju treba izmijeniti
                    if (dokument1.DokumentId > 0)
                    {
                        noviDokkument = ponuda.PonDokumentis.First(s => s.DokumentId == dokument1.DokumentId).Dokument;
                    }
                    else
                    {
                        noviDokkument = new Dokument();

                        ctx.Add(noviDokkument);
                    }
                    noviDokkument.DokumentId   = dokument1.DokumentId;
                    noviDokkument.Naslov       = dokument1.Naslov;
                    noviDokkument.Vrsta        = dokument1.Vrsta;
                    noviDokkument.Blob         = dokument1.Blob;
                    noviDokkument.PonudaId     = dokument1.PonudaId;
                    noviDokkument.DatumPredaje = dokument1.DatumPredaje;
                }

                try
                {
                    await ctx.SaveChangesAsync();

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