public async Task <IActionResult> Create(Dokument dokument)
        {
            var query  = ctx;
            int zadnji = query.Dokuments.OrderBy(d => d.DokumentId).Last().DokumentId;

            dokument.DokumentId = zadnji + 1;
            if (ModelState.IsValid)
            {
                var idemo = new PonDokumenti();
                idemo.PonudaId   = dokument.PonudaId;
                idemo.DokumentId = dokument.DokumentId;
                try
                { ctx.Add(idemo);
                  ctx.Add(dokument);
                  await ctx.SaveChangesAsync();

                  TempData[Constants.Message]       = $"dokument {dokument.Naslov} dodano. Id mjesta = {dokument.DokumentId}";
                  TempData[Constants.ErrorOccurred] = false;
                  return(RedirectToAction(nameof(Index))); }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    await PrepareDropDownLists();

                    return(View(dokument));
                }
            }
            else
            {
                await PrepareDropDownLists();

                return(View(dokument));
            }
        }
        public async Task <IActionResult> Delete(int id, int page = 1, int sort = 1, bool ascending = true)
        {
            var dokument = await ctx.Dokuments.FindAsync(id);

            if (dokument != null)
            {
                var idemo = new PonDokumenti();
                idemo.PonudaId   = dokument.PonudaId;
                idemo.DokumentId = dokument.DokumentId;
                try
                {
                    string naziv = dokument.Naslov;
                    ctx.Remove(idemo);
                    ctx.Remove(dokument);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"dokument {naziv} sa šifrom {id} obrisano.";
                    TempData[Constants.ErrorOccurred] = false;
                }
                catch (Exception exc)
                {
                    TempData[Constants.Message]       = "Pogreška prilikom brisanja dokumenta: " + exc.CompleteExceptionMessage();
                    TempData[Constants.ErrorOccurred] = true;
                }
            }
            else
            {
                TempData[Constants.Message]       = $"Ne postoji dokument sa šifrom: {id}";
                TempData[Constants.ErrorOccurred] = true;
            }
            return(RedirectToAction(nameof(Index), new { page, sort, ascending }));
        }
        public async Task <IActionResult> Edit(Dokument dokument, int page = 1, int sort = 1, bool ascending = true)
        {
            if (dokument == null)
            {
                return(NotFound("Nema poslanih podataka"));
            }
            bool checkId = await ctx.Dokuments.AnyAsync(m => m.DokumentId == dokument.DokumentId);

            if (!checkId)
            {
                return(NotFound($"Neispravan id mjesta: {dokument?.DokumentId}"));
            }

            if (ModelState.IsValid)
            {
                var idemo = new PonDokumenti();
                idemo.PonudaId   = dokument.PonudaId;
                idemo.DokumentId = dokument.DokumentId;

                try
                {
                    ctx.Update(idemo);
                    ctx.Update(dokument);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = "dokument ažurirano.";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Index), new { page, sort, ascending }));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    await PrepareDropDownLists();

                    return(View(dokument));
                }
            }
            else
            {
                await PrepareDropDownLists();

                return(View(dokument));
            }
        }