public async Task <SeriesWithOptionsViewModel> GetBlankVmForCreate(string clubInitials) { var clubId = await _coreClubService.GetClubId(clubInitials); var seasons = await _coreSeasonService.GetSeasons(clubId); var vm = new SeriesWithOptionsViewModel { SeasonOptions = seasons }; var selectedSeason = seasons.FirstOrDefault(s => s.Start <DateTime.Now && s.End> DateTime.Now); if (selectedSeason == null && seasons.Count() == 1) { selectedSeason = seasons.First(); } if (selectedSeason != null) { vm.SeasonId = selectedSeason.Id; } var scoringSystemOptions = await _coreScoringService.GetScoringSystemsAsync(clubId, true); scoringSystemOptions.Add(new ScoringSystem { Id = Guid.Empty, Name = "<Use Club Default>" }); vm.ScoringSystemOptions = scoringSystemOptions.OrderBy(s => s.Name).ToList(); return(vm); }
public async Task <ActionResult> Edit(string clubInitials, SeriesWithOptionsViewModel model) { try { var clubId = await _clubService.GetClubId(clubInitials); if (!await _authService.CanUserEdit(User, clubId)) { return(Unauthorized()); } model.ClubId = clubId; if (!ModelState.IsValid) { var blankVm = await _seriesService.GetBlankVmForCreate(clubInitials); model.SeasonOptions = blankVm.SeasonOptions; model.ScoringSystemOptions = blankVm.ScoringSystemOptions; return(View(model)); } model.UpdatedBy = await GetUserStringAsync(); await _seriesService.Update(model); return(RedirectToAction("Index", "Admin")); } catch { return(View(model)); } }
public IList <AdminToDoViewModel> GetSeriesCreateErrors(SeriesWithOptionsViewModel series) { var returnList = new List <AdminToDoViewModel>(); if (series == null) { return(returnList); } if (series.SeasonOptions == null || !series.SeasonOptions.Any()) { returnList.Add(new AdminToDoViewModel { Title = "Add a season", Details = "Before creating a series you need to set up a season.", Link = new ToDoLinkViewModel { Action = "Create", Controller = "Season" }, Completed = false }); } return(returnList); }
public async Task Update(SeriesWithOptionsViewModel model) { var seasons = await _coreSeasonService.GetSeasons(model.ClubId); var season = seasons.Single(s => s.Id == model.SeasonId); model.Season = season; if (model.ScoringSystemId == Guid.Empty) { model.ScoringSystemId = null; } await _coreSeriesService.Update(model); }
public async Task <ActionResult> Create(string clubInitials, SeriesWithOptionsViewModel model) { try { var clubId = await _clubService.GetClubId(clubInitials); if (!await _authService.CanUserEdit(User, clubId)) { return(Unauthorized()); } model.ClubId = clubId; if (!ModelState.IsValid) { var blankVm = await _seriesService.GetBlankVmForCreate(clubInitials); model.SeasonOptions = blankVm.SeasonOptions; model.ScoringSystemOptions = blankVm.ScoringSystemOptions; return(View(model)); } model.UpdatedBy = await GetUserStringAsync(); await _seriesService.SaveNew(model); return(RedirectToAction("Index", "Admin")); } catch { var blankVm = await _seriesService.GetBlankVmForCreate(clubInitials); model.SeasonOptions = blankVm.SeasonOptions; model.ScoringSystemOptions = blankVm.ScoringSystemOptions; ModelState.AddModelError(String.Empty, "A problem occurred creating this series. Does a " + "series with this season and this name already exist?"); return(View(model)); } }