/// <summary> /// Removes entries in AvailableMatchDates database table. /// </summary> /// <param name="clear">Which entries to delete for the tournament.</param> /// <param name="cancellationToken"></param> /// <returns>Returns the number of deleted records.</returns> internal async Task <int> ClearAsync(ClearMatchDates clear, CancellationToken cancellationToken) { var deleted = 0; // tournament is always in the filter var filterAvailable = new RelationPredicateBucket(); filterAvailable.PredicateExpression.Add(AvailableMatchDateFields.TournamentId == _tenantContext.TournamentContext.MatchPlanTournamentId); if (clear == ClearMatchDates.All) { deleted = await _appDb.GenericRepository.DeleteEntitiesDirectlyAsync(typeof(AvailableMatchDateEntity), null !, cancellationToken); _generatedAvailableMatchDateEntities.Clear(); } else if (clear == ClearMatchDates.OnlyAutoGenerated) { filterAvailable.PredicateExpression.AddWithAnd(AvailableMatchDateFields.IsGenerated == true); deleted = await _appDb.GenericRepository.DeleteEntitiesDirectlyAsync(typeof(AvailableMatchDateEntity), filterAvailable, cancellationToken); _generatedAvailableMatchDateEntities.Clear(); } else if (clear == ClearMatchDates.OnlyManual) { filterAvailable.PredicateExpression.AddWithAnd(AvailableMatchDateFields.IsGenerated == false); deleted = await _appDb.GenericRepository.DeleteEntitiesDirectlyAsync(typeof(AvailableMatchDateEntity), filterAvailable, cancellationToken); } return(deleted); }
/// <summary> /// Removes all entries in AvailableMatchDates database table. /// </summary> /// <param name="clear">Which entries to delete for the tournament.</param> /// <returns>Returns the number of deleted records.</returns> internal int Clear(ClearMatchDates clear) { int deleted = 0; // tournament is always in the filter var filterAvailable = new RelationPredicateBucket(); filterAvailable.PredicateExpression.Add(AvailableMatchDateFields.TournamentId == _matchPlanner.Tournament.Id); if (clear == ClearMatchDates.All) { deleted = _matchPlanner.Adapter.DeleteEntitiesDirectly(typeof(AvailableMatchDateEntity), null); } else if (clear == ClearMatchDates.OnlyAutoGenerated) { filterAvailable.PredicateExpression.AddWithAnd(AvailableMatchDateFields.IsGenerated == true); deleted = _matchPlanner.Adapter.DeleteEntitiesDirectly(typeof(AvailableMatchDateEntity), filterAvailable); } else if (clear == ClearMatchDates.OnlyManual) { filterAvailable.PredicateExpression.AddWithAnd(AvailableMatchDateFields.IsGenerated == false); deleted = _matchPlanner.Adapter.DeleteEntitiesDirectly(typeof(AvailableMatchDateEntity), filterAvailable); } return(deleted); }
public async Task GenerateAvailableMatchDatesAsync(ClearMatchDates clearMatchDates, RoundEntity round, CancellationToken cancellationToken) { _ = await _availableMatchDates.ClearAsync(clearMatchDates, cancellationToken); if (!AreEntitiesLoaded) { await LoadEntitiesAsync(cancellationToken); } await _availableMatchDates.GenerateNewAsync(round, cancellationToken); }