public async Task <IActionResult> Snimi(IspitPolaganjeVM model) { if (!ModelState.IsValid) { return(BadRequest("Podaci nisu validni.")); } if (!model.Ocjena.HasValue) { var ispitTerminDecryptedId = int.Parse(_protector.Unprotect(model.IspitniTerminId)); var ispitniTermin = await _context.IspitniTermini.FindAsync(ispitTerminDecryptedId); if (ispitniTermin == null) { return(NotFound("Ispitni termin nije pronadjne.")); } var novoPolaganje = new IspitPolaganje { IspitniTerminId = int.Parse(_protector.Unprotect(model.IspitniTerminId)), Ocjena = 0, PristupioIspitu = false, UpisGodineId = int.Parse(_protector.Unprotect(model.UpisGodineId)) }; await _context.AddAsync(novoPolaganje); await _context.SaveChangesAsync(); ViewData["evidentiraniRezultati"] = ispitniTermin.EvidentiraniRezultati; ViewData["datumIspita"] = ispitniTermin.DatumIspita; return(PartialView("_PolaganjeIspitaRow", await BuildPolaganjeIspitaVM(novoPolaganje))); } var polaganjeFromDb = await _context.PolaganjaIspita .Include(x => x.IspitniTermin) .FirstOrDefaultAsync(x => x.Id == int.Parse(_protector.Unprotect(model.Id))); if (polaganjeFromDb == null) { return(BadRequest("Polaganje ne postoji.")); } polaganjeFromDb.Ocjena = model.Ocjena; polaganjeFromDb.PristupioIspitu = true; _context.Update(polaganjeFromDb); await _context.SaveChangesAsync(); ViewData["evidentiraniRezultati"] = polaganjeFromDb.IspitniTermin.EvidentiraniRezultati; ViewData["datumIspita"] = polaganjeFromDb.IspitniTermin.DatumIspita; return(PartialView("_PolaganjeIspitaRow", await BuildPolaganjeIspitaVM(polaganjeFromDb))); }
private async Task <PolaganjeIspitaVM> BuildPolaganjeIspitaVM(IspitPolaganje polaganje) { return(new PolaganjeIspitaVM { Id = _protector.Protect(polaganje.Id.ToString()), Student = _context.UpisGodine .Where(u => u.Id == polaganje.UpisGodineId) .Select(u => u.Student) .FirstOrDefault() ?.ImePrezime() ?? "", PristupioIspitu = polaganje.PristupioIspitu, Ocjena = polaganje.Ocjena }); }