public async Task <IActionResult> CreateAsync() { var currentUser = await _userManager.GetUserAsync(User); if (currentUser == null) { return(Challenge()); } var item = _db.Faults.ToList(); CompetitionFaultViewModel m1 = new CompetitionFaultViewModel() { AvailableDogs = _db.Dogs.Where(d => d.ApplicationUserId == currentUser.Id) .ToDictionary(x => x.Id, x => $"{ x.Id }({ x.DogName })") }; m1.AllFaults = item.Select(vm => new CheckBoxItem() { Id = vm.Id, Name = vm.Name, IsChecked = false }).ToList(); return(View(m1)); }
public async Task <IActionResult> CreateAsync(CompetitionFaultViewModel cfvm, Competition competition, CompFault cf) { var userId = _userManager.GetUserId(User); var user = await _userManager.FindByIdAsync(userId); var currentUser = await _userManager.GetUserAsync(User); List <CompFault> compFaults = new List <CompFault>(); competition.CompName = cfvm.CompName; competition.Location = cfvm.Location; competition.Date = cfvm.Date; competition.Length = cfvm.Length; competition.Surface = (Surface)cfvm.Surface; competition.Placement = (Placement)cfvm.Placement; competition.Notes = cfvm.Notes; competition.ApplicationUserId = userId; competition.DogId = cfvm.DogId; _db.Competitions.Add(competition); _db.SaveChanges(); int compId = competition.CompId; foreach (var item in cfvm.AllFaults) { if (item.IsChecked == true) { compFaults.Add(new CompFault() { CompId = compId, FaultId = item.Id }); } } foreach (var item in compFaults) { _db.CompFaults.Add(item); } cfvm.AvailableDogs = _db.Dogs.Where(d => d.ApplicationUserId == currentUser.Id) .ToDictionary(x => x.Id, x => $"{ x.Id }({ x.DogName })"); _db.SaveChanges(); return(RedirectToAction("Index", "Competitions")); }