public async Task <ActionResult> Verify(
        string clubInitials,
        MergeCompetitorViewModel vm)
    {
        var clubId = await _clubService.GetClubId(clubInitials);

        if (!await _authService.CanUserEdit(User, clubId))
        {
            return(Unauthorized());
        }

        vm.SourceCompetitor = await _competitorService.GetCompetitorAsync(vm.SourceCompetitorId.Value);

        vm.TargetCompetitor = await _competitorService.GetCompetitorAsync(vm.TargetCompetitorId.Value);

        if (vm.SourceCompetitor.ClubId != clubId ||
            vm.TargetCompetitor.ClubId != clubId)
        {
            return(Unauthorized());
        }
        vm.SourceNumberOfRaces = await _mergeService.GetNumberOfRaces(vm.SourceCompetitorId.Value);

        vm.TargetNumberOfRaces = await _mergeService.GetNumberOfRaces(vm.TargetCompetitorId.Value);

        vm.SourceSeasons = await _mergeService.GetSeasons(vm.SourceCompetitorId.Value);

        vm.TargetSeasons = await _mergeService.GetSeasons(vm.TargetCompetitorId.Value);

        return(View("Verify", vm));
    }
Exemplo n.º 2
0
        public async Task <IList <Competitor> > GetSourceOptionsFor(Guid targetCompetitorId)
        {
            var targetComp = await _competitorService.GetCompetitorAsync(targetCompetitorId)
                             .ConfigureAwait(false);

            var targetRaceIds = GetRacesForComp(targetCompetitorId);

            var sourceList =
                _dbContext.Competitors.Where(c => c.ClubId == targetComp.ClubId &&
                                             c.Id != targetComp.Id &&
                                             !(c.Scores.Any(s => targetRaceIds.Contains(s.RaceId))))
                .OrderBy(c => c.Name);

            return(_mapper.Map <IList <Competitor> >(await sourceList.ToListAsync()
                                                     .ConfigureAwait(false)));
        }