public async Task <IActionResult> CreateGroup(ChallengeGroupDetailViewModel model) { var challengeIds = new List <int>(); if (!string.IsNullOrWhiteSpace(model.ChallengeIds)) { challengeIds = model?.ChallengeIds .Split(',') .Where(_ => !string.IsNullOrWhiteSpace(_)) .Select(int.Parse) .ToList(); } if (ModelState.IsValid) { try { var serviceResult = await _challengeService.AddGroupAsync(model.ChallengeGroup, challengeIds); if (serviceResult.Status == ServiceResultStatus.Warning && !string.IsNullOrWhiteSpace(serviceResult.Message)) { ShowAlertWarning(serviceResult.Message); } ShowAlertSuccess($"Added Challenge Group \"{model.ChallengeGroup.Name}\"!"); return(RedirectToAction(nameof(EditGroup), new { id = serviceResult.Data.Id })); } catch (GraException gex) { ShowAlertDanger("Unable to add Challenge Group: ", gex); } } model.ChallengeGroup.Challenges = await _challengeService.GetByIdsAsync(challengeIds); foreach (var challenge in model.ChallengeGroup.Challenges) { if (!string.IsNullOrWhiteSpace(challenge.BadgeFilename)) { challenge.BadgeFilename = _pathResolver.ResolveContentPath( challenge.BadgeFilename); } } PageTitle = "Create Challenge Group"; return(View("GroupDetail", model)); }