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); }
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); }
public int GetHashCode(CompetitorBase obj) { return(obj?.NationalityCode?.GetHashCode() ?? 0); }
public bool Equals(CompetitorBase x, CompetitorBase y) { return(x.NationalityCode == y.NationalityCode); }