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));
        }
    }
Exemple #3
0
    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));
        }
    }