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)); }
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))); }