Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(PrisustvoInputVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { Errors = ModelState.Values.SelectMany(x => x.Errors) }));
            }

            var prisustvo = await _context.OdrzaniCasDetalji.FindAsync(model.Id);

            if (prisustvo == null)
            {
                return(NotFound("Prisustvo nije pronadjeno."));
            }

            if (prisustvo.Odsutan)
            {
                prisustvo.OpravdanoOdsutan = model.OpravdanoOdsutan;
            }
            else
            {
                if (model.Ocjena.HasValue)
                {
                    prisustvo.Ocjena = model.Ocjena.Value;
                }
            }

            _context.Update(prisustvo);
            await _context.SaveChangesAsync();

            return(ViewComponent("PrisustvoCasu", new { odrzaniCasDetaljiId = model.Id }));
        }
        public async Task <IActionResult> SnimiPrisustvo(PrisustvoInputVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Podaci nisu validni."));
            }

            var currentUser = await HttpContext.GetLoggedInUser();

            var nastavnik = await _dbContext.Nastavnik.FirstOrDefaultAsync(x => x.UserId == currentUser.Id);

            if (nastavnik == null)
            {
                return(NotFound());
            }

            var prisustvo = await _dbContext.OdrzaniCasDetalji
                            .Include(x => x.OdrzaniCas)
                            .ThenInclude(x => x.Angazovan)
                            .Include(x => x.SlusaPredmet)
                            .ThenInclude(x => x.UpisGodine)
                            .ThenInclude(x => x.Student)
                            .FirstOrDefaultAsync(x => x.Id == model.Id);

            if (prisustvo == null)
            {
                return(NotFound());
            }

            if (prisustvo.OdrzaniCas.Angazovan.NastavnikId != nastavnik.Id)
            {
                return(Unauthorized());
            }

            prisustvo.BodoviNaCasu = model.Bodovi;
            _dbContext.Update(prisustvo);
            await _dbContext.SaveChangesAsync();


            return(PartialView("_OdrzaniCasDetaljRow", await BuildOdrzaniCasDetaljVM(prisustvo)));
        }
        public async Task <IActionResult> UrediPrisustvo(int odrzaniCasDetaljId)
        {
            var currentUser = await HttpContext.GetLoggedInUser();

            var nastavnik = await _dbContext.Nastavnik.FirstOrDefaultAsync(x => x.UserId == currentUser.Id);

            if (nastavnik == null)
            {
                return(NotFound());
            }

            var prisustvo = await _dbContext.OdrzaniCasDetalji
                            .Include(x => x.OdrzaniCas)
                            .ThenInclude(x => x.Angazovan)
                            .Include(x => x.SlusaPredmet)
                            .ThenInclude(x => x.UpisGodine)
                            .ThenInclude(x => x.Student)
                            .FirstOrDefaultAsync(x => x.Id == odrzaniCasDetaljId);

            if (prisustvo == null)
            {
                return(NotFound());
            }

            if (prisustvo.OdrzaniCas.Angazovan.NastavnikId != nastavnik.Id)
            {
                return(Unauthorized());
            }

            var vModel = new PrisustvoInputVM
            {
                Id      = prisustvo.Id,
                Student = prisustvo.SlusaPredmet?.UpisGodine?.Student?.ImePrezime() ?? NOT_FOUND
            };

            return(PartialView("_PrisustvoEdit", vModel));
        }