public async Task DeleteCompetitorAsync(CompetitorBase competitor)
        {
            var races = await context.Races.Where(r => r.CompetitorId == competitor.Id).ToListAsync();

            foreach (var race in races)
            {
                context.Races.Remove(race);
            }

            context.Competitors.Remove(competitor);
            await context.SaveChangesAsync();
        }
        public async Task UpdateCompetitorAsync(CompetitorBase competitor)
        {
            if (competitor.ClubCode.HasValue)
            {
                var club = await context.Clubs.FirstOrDefaultAsync(c => c.Code == competitor.ClubCode && c.CountryCode == competitor.ClubCountryCode);

                competitor.ClubShortName = club?.ShortName;
                competitor.ClubFullName  = club?.FullName;
            }

            await context.SaveChangesAsync();
        }
        public async Task ConfirmCompetitorAsync(CompetitorBase competitor, params Guid[] combinations)
        {
            competitor.Status = CompetitorStatus.Confirmed;

            var competitors = await(from dcc in context.DistanceCombinationCompetitors
                                    where combinations.Contains(dcc.DistanceCombinationId) && dcc.CompetitorId == competitor.Id
                                    select dcc).ToListAsync();

            foreach (var combinationCompetitor in competitors)
            {
                combinationCompetitor.Status = DistanceCombinationCompetitorStatus.Confirmed;
            }

            await context.SaveChangesAsync();
        }
 private async Task AddCompetitorAsync(CompetitorBase competitor)
 {
     competitor.Id    = Guid.NewGuid();
     competitor.Added = DateTime.UtcNow;
     context.Competitors.Add(competitor);
     try
     {
         await context.SaveChangesAsync();
     }
     catch (DbUpdateException e)
     {
         // TODO: Check if the number indeed already exists
         throw new NumberCollissionException(string.Format(Resources.StartNumberCollission, competitor.StartNumber), e);
     }
 }
        public async Task WithdrawCompetitorAsync(CompetitorBase competitor, params Guid[] combinations)
        {
            var competitors = await(from dcc in context.DistanceCombinationCompetitors
                                    where dcc.CompetitorId == competitor.Id && combinations.Contains(dcc.DistanceCombinationId)
                                    select dcc).ToListAsync();

            foreach (var combinationCompetitor in competitors)
            {
                combinationCompetitor.Status = DistanceCombinationCompetitorStatus.Withdrawn;
            }

            var races = await context.Races.Where(r => r.CompetitorId == competitor.Id).ToListAsync();

            foreach (var race in races)
            {
                context.Races.Remove(race);
            }

            await context.SaveChangesAsync();
        }
 public CompetitorGroup Group(CompetitorBase competitor, IEnumerable <RankedRace> races)
 {
     return(new CompetitorGroup(competitor.ClubFullName, races));
 }
 public int GetHashCode(CompetitorBase obj)
 {
     return(obj?.ClubCode?.GetHashCode() ?? 0);
 }
 public bool Equals(CompetitorBase x, CompetitorBase y)
 {
     return(x.ClubCountryCode == y.ClubCountryCode && x.ClubCode == y.ClubCode);
 }
 public ClassifiedCompetitor(CompetitorBase competitor)
 {
     Competitor = competitor;
     Races      = new List <ClassifiedRace>();
 }
 public int GetHashCode(CompetitorBase obj)
 {
     return(obj?.LicenseKey?.GetHashCode() ?? 0);
 }
 public bool Equals(CompetitorBase x, CompetitorBase y)
 {
     return(x.LicenseKey == y.LicenseKey);
 }
예제 #12
0
 public DrawCompetitor(CompetitorBase competitor, IPersonLicenseTime time)
 {
     Competitor = competitor;
     Time       = time;
 }
 public CompetitorGroup Group(CompetitorBase competitor, IEnumerable <RankedRace> races)
 {
     return(new CompetitorGroup(competitor.VenueCode, races));
 }
 public bool Equals(CompetitorBase x, CompetitorBase y)
 {
     return(x.VenueCode == y.VenueCode);
 }
예제 #15
0
 public int GetHashCode(CompetitorBase obj)
 {
     return(obj?.NationalityCode?.GetHashCode() ?? 0);
 }
예제 #16
0
 public bool Equals(CompetitorBase x, CompetitorBase y)
 {
     return(x.NationalityCode == y.NationalityCode);
 }