public IActionResult Detalji(int dogadjajId)
        {
            KorisnickiNalog korisnik = HttpContext.GetLogiraniKorisnik();
            Korisnici       k        = _context.Korisnici.Where(x => x.KorisnickiNalogId == korisnik.Id).FirstOrDefault();

            if (korisnik == null || k.VrstaKorisnikaId != 2)
            {
                TempData["error_poruka"] = "Nemate pravo pristupa!";
                return(Redirect("/Autentifikacija/Index"));
            }
            DogadjajDetaljiVM model = _context.Dogadjaj.Where(x => x.Id == dogadjajId).Select(x => new DogadjajDetaljiVM
            {
                DogadjajID               = x.Id,
                Kategorija               = x.Kategorije.Naziv,
                OrganizacioneJedinice    = x.OrganizacionaJedinica.Naziv,
                PodorganizacioneJedinice = x.PodorganizacionaJedinica.Naziv,
                Vrste           = x.Vrste.Naziv,
                DatumDogadjaja  = (DateTime)x.DatumDogadjaja,
                MjestoDogadjaja = x.MjestoDogadjaja,
                DatumPrijave    = (DateTime)x.DatumPrijave,
                Prijavitelj     = x.Prijavitelj,
                Opis            = x.Opis
            }).FirstOrDefault();

            return(View(model));
        }
        public IActionResult Detalji(int DogadjajID)
        {
            OznacenDogadjaj dogadjaj = db.OznacenDogadjaj.Include(x => x.Dogadjaj)
                                       .ThenInclude(x => x.Nastavnik)
                                       .Where(x => x.ID == DogadjajID)
                                       .FirstOrDefault();

            DogadjajDetaljiVM model = new DogadjajDetaljiVM()
            {
                DogadjajID      = DogadjajID,
                DatumDodavanja  = dogadjaj.DatumDodavanja,
                DatumOdrzavanja = dogadjaj.Dogadjaj.DatumOdrzavanja,
                Opis            = dogadjaj.Dogadjaj.Opis,
                Nastavnik       = dogadjaj.Dogadjaj.Nastavnik.ImePrezime
            };

            return(View(model));
        }
        private async Task <DogadjajDetaljiVM> BuildDogadjajOznaceniDetaljiViewModel(int dogadjajId)
        {
            var student = HttpContext.GetLogiraniKorisnik();

            var oznaceniDogadjaj = await _context.OznacenDogadjaj
                                   .Include(x => x.Dogadjaj)
                                   .ThenInclude(x => x.Nastavnik)
                                   .FirstOrDefaultAsync(x => x.DogadjajID == dogadjajId);

            if (student == null || oznaceniDogadjaj == null)
            {
                return new DogadjajDetaljiVM {
                           Obaveze = new List <ObavezaVM>()
                }
            }
            ;

            await _context.Entry(oznaceniDogadjaj).Collection(x => x.StanjaObaveza).LoadAsync();

            var model = new DogadjajDetaljiVM
            {
                Id             = _protector.Protect(oznaceniDogadjaj.ID.ToString()),
                Opis           = oznaceniDogadjaj.Dogadjaj.Opis,
                DatumDodavanja = oznaceniDogadjaj.DatumDodavanja,
                DatumDogadjaja = oznaceniDogadjaj.Dogadjaj.DatumOdrzavanja,
                Nastavnik      = oznaceniDogadjaj.Dogadjaj.Nastavnik.ImePrezime,
                Obaveze        = new List <ObavezaVM>()
            };

            if (oznaceniDogadjaj.StanjaObaveza.Any())
            {
                model.Obaveze = oznaceniDogadjaj.StanjaObaveza.Select(x => new ObavezaVM
                {
                    Id    = _protector.Protect(x.Id.ToString()),
                    Naziv = _context.Obaveza.Find(x.ObavezaID)?.Naziv + x.Id ?? "",
                    ProcenatRealizacije    = x.IzvrsenoProcentualno,
                    NotificirajDanaUnapred = x.NotifikacijaDanaPrije,
                    RekurzivnaNotifikacija = x.NotifikacijeRekurizivno
                }).ToList();
            }

            return(model);
        }
    }