private void AddSessionCell(PdfPTable table, ApplicationUserTijdvak applicationUserTijdvak) { PdfPCell cell; if (applicationUserTijdvak.Sessie == null || applicationUserTijdvak.Sessie.Track.BadgeCode == null) { cell = new PdfPCell(new Phrase(String.Format(""))); cell.BackgroundColor = new BaseColor(255, 255, 255); } else { cell = new PdfPCell(new Phrase(String.Format(applicationUserTijdvak.Sessie.Track.BadgeCode), _fontSession)); cell.BackgroundColor = DeriveColorFromRgbString(applicationUserTijdvak.Sessie.Track.Rgb); } AddSessionCellSuffix(table, cell); table.AddCell(cell); }
public async Task <IActionResult> EditSessionSelection(EditSessionSelection model) { string id = _userManager.GetUserId(User); if (model == null || id == null || model.TijdvakId == null) { return(NotFound()); } ApplicationUser user = await _context.ApplicationUsers .Include(c => c.ApplicationUserTijdvakken) .ThenInclude(atv => atv.Sessie) .Include(c => c.ApplicationUserTijdvakken) .ThenInclude(t => t.Tijdvak) .SingleOrDefaultAsync(m => m.Id == id); if (user == null) { return(NotFound()); } Sessie sessie = await _context.Sessies .Include(s => s.SessieTijdvakken) .Include(s => s.Ruimte) .SingleOrDefaultAsync(s => s.Id == model.SelectedSessieId); if (sessie == null) { return(NotFound()); } int usercount = await sessie.GetUserCountAsync(_context); TempData["StatusMessage"] = "Fout: Registreren bij sessie niet gelukt, probeer het nog een keer..."; if (usercount < sessie.Ruimte.Capacity) { // release tijdvakken for the current session (as we might be going from a 2 tijdvak session to a 1 tijdvak session, we need to make sure all tijdvakken are released) ApplicationUserTijdvak currentautv = await _context.ApplicationUserTijdvakken .Where(t => t.ApplicationUserId == user.Id) .SingleOrDefaultAsync(t => t.TijdvakId == model.TijdvakId); Sessie currentsessie = await _context.Sessies.SingleOrDefaultAsync(s => s.Id == currentautv.SessieId); if (currentsessie != null) { foreach (ApplicationUserTijdvak autv in user.ApplicationUserTijdvakken) { if (autv.SessieId == currentsessie.Id) { autv.SessieId = null; } } } // reserve tijdvakken for the selected session foreach (SessieTijdvak stv in sessie.SessieTijdvakken) { foreach (ApplicationUserTijdvak autv in user.ApplicationUserTijdvakken) { if (stv.TijdvakId == autv.TijdvakId) { autv.SessieId = stv.SessieId; } } } try { sessie.ForceChangeCount++; var saveresult = await _context.SaveChangesAsync(); TempData["StatusMessage"] = "U bent geregistreerd voor de sessie..."; } catch (DbUpdateConcurrencyException) { } } return(RedirectToAction(nameof(SelectSessies))); }