// GET: AdminMatchUsers/Edit/5 public async Task <IActionResult> Create(int matchId) { var match = await _context.Matchs .Include(m => m.Sides) .Include(m => m.Rounds).ThenInclude(r => r.Sides).ThenInclude(s => s.Squads).ThenInclude(s => s.Slots) .Include(m => m.Users) .FirstOrDefaultAsync(m => m.MatchID == matchId); if (match == null) { return(NotFound()); } var vm = new MatchUserCreateViewModel(); vm.MatchUser = new MatchUser() { MatchID = match.MatchID, Match = match }; if (match.Sides.Count == 1) { vm.MatchUser.Side = match.Sides.First(); vm.MatchUser.MatchSideID = vm.MatchUser.Side.MatchSideID; } vm.Users = (await _context.Users.ToListAsync()).Where(u => !match.Users.Any(mu => mu.UserID == u.UserID)).Select(u => new SelectListItem(u.Name, u.UserID.ToString())).ToList(); PrepareEditViewModel(vm); return(View(vm)); }
public async Task <IActionResult> Create(MatchUserCreateViewModel vm) { if (ModelState.IsValid) { _context.Add(vm.MatchUser); await _context.SaveChangesAsync(); using (var transac = await _context.Database.BeginTransactionAsync()) { await ApplyUserSlots(vm); await _context.SaveChangesAsync(); await transac.CommitAsync(); } return(RedirectToAction(nameof(Details), ControllersName.AdminMatchs, new { id = vm.MatchUser.MatchID }, "users")); } PrepareEditViewModel(vm); return(View(vm)); }