示例#1
0
        public void InitializeSportEntities()
        {
            var watch = Stopwatch.StartNew();

            if (SportEntityFactory == null)
            {
                Init();
            }
            var time = watch.Elapsed.TotalMilliseconds;

            Debug.WriteLine($"Init time: {time}");
            Competition = SportEntityFactory.BuildSportEvent <ICompetition>(TestData.EventId, URN.Parse("sr:sport:3"), TestData.Cultures3, TestData.ThrowingStrategy);
            Debug.WriteLine($"Competition time: {watch.Elapsed.TotalMilliseconds - time}");
            time  = watch.Elapsed.TotalMilliseconds;
            Sport = SportEntityFactory.BuildSportAsync(TestData.SportId, TestData.Cultures3, TestData.ThrowingStrategy).Result;
            Debug.WriteLine($"Sport time: {watch.Elapsed.TotalMilliseconds - time}");
            time   = watch.Elapsed.TotalMilliseconds;
            Sports = SportEntityFactory.BuildSportsAsync(TestData.Cultures3, TestData.ThrowingStrategy).Result?.ToList();
            Debug.WriteLine($"Sports time: {watch.Elapsed.TotalMilliseconds - time}");
            time       = watch.Elapsed.TotalMilliseconds;
            Tournament = SportEntityFactory.BuildSportEvent <ITournament>(TestData.TournamentId, TestData.SportId, TestData.Cultures3, TestData.ThrowingStrategy);
            Debug.WriteLine($"Tournament time: {watch.Elapsed.TotalMilliseconds - time}");
            time   = watch.Elapsed.TotalMilliseconds;
            Season = SportEntityFactory.BuildSportEvent <ISeason>(TestData.SeasonId, TestData.SportId, TestData.Cultures3, TestData.ThrowingStrategy);
            Debug.WriteLine($"Season time: {watch.Elapsed.TotalMilliseconds - time}");
        }
        private static void ValidateSportEvent(ICompetition item, bool ignoreDate = false)
        {
            Assert.IsNotNull(item, "Sport event not found.");
            Assert.AreEqual(TestData.EventId, item.Id, "Id not correct.");

            var date        = item.GetScheduledTimeAsync().Result;
            var competitors = item.GetCompetitorsAsync().Result?.ToList();
            var comp        = competitors?.FirstOrDefault();
            var venue       = item.GetVenueAsync().Result;
            var status      = item.GetStatusAsync().Result;

            Assert.IsTrue(date != null, "date == null");
            if (!ignoreDate)
            {
                Assert.AreEqual(new DateTime(2016, 08, 10), new DateTime(date.Value.Year, date.Value.Month, date.Value.Day));
            }

            Assert.AreEqual(2, competitors?.Count);
            if (comp != null)
            {
                Assert.AreEqual("sr:competitor:66390", comp.Id.ToString());
                Assert.AreEqual(@"Pericos de Puebla", comp.GetName(TestData.Culture));
                Assert.AreEqual(3, comp.Countries.Count);
                Assert.AreEqual("Mexico", comp.Countries[TestData.Culture]);
                Assert.AreNotEqual(comp.Countries[TestData.Culture], comp.Countries[new CultureInfo("de")]);
            }
            Assert.AreEqual(3, venue.Names.Count);
            Assert.IsTrue(!string.IsNullOrEmpty(venue.GetName(TestData.Culture)));

            Assert.IsNotNull(status);
        }
示例#3
0
        /// <inheritdoc/>
        public async Task UpdateAsync(
            IWho who,
            IAuditHeaderWithAuditDetails auditHeader,
            ICompetition competition)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, host) {@Who} {@Competition}",
                nameof(this.UpdateAsync),
                who,
                competition);

            CompetitionDto dto      = CompetitionDto.ToDto(competition);
            CompetitionDto original = await this.context.FindAsync <CompetitionDto>(competition.Id)
                                      .ConfigureAwait(false);

            Audit.AuditUpdate(auditHeader, dto.Id, original, dto);

            this.context.Entry(original).CurrentValues.SetValues(dto);
            await this.context.SaveChangesAsync().ConfigureAwait(false);

            this.logger.LogTrace(
                "EXIT {Method}(who) {@Who}",
                nameof(this.UpdateAsync),
                who);
        }
示例#4
0
        public LeagueGeneration(ICompetition competition)
        {
            LeagueSize  = competition.Teams.Values.Count;
            Competition = competition;

            Model();
            Constrain();
            Search();
        }
示例#5
0
 public DatabaseResult Remove(ICompetition competition)
 {
     try
     {
         InMemDb.Db.Competitions.Remove((Competition)competition);
         return(DatabaseResult.successful);
     }
     catch (Exception)
     {
         return(DatabaseResult.failed);
     }
 }
示例#6
0
 public DatabaseResult Create(ICompetition competition)
 {
     try
     {
         _context.Competition.Add((Competition)competition);
         return(DatabaseResult.successful);
     }
     catch (Exception e)
     {
         Debug.WriteLine($"While attempting competition creation: {e.Message}", e.GetType().ToString());
         return(DatabaseResult.failed);
     }
 }
示例#7
0
 public DatabaseResult Remove(ICompetition competition)
 {
     try
     {
         _context.Competition.Remove((Competition)competition);
         return(DatabaseResult.successful);
     }
     catch (Exception e)
     {
         Debug.WriteLine($"While attempting competition removal: {e.Message}", "Error");
         return(DatabaseResult.failed);
     }
 }
示例#8
0
 public DatabaseResult Update(ICompetition competition)
 {
     try
     {
         InMemDb.Db.Competitions.Find(x => x.CompetitionId == competition.CompetitionId).Matches = competition.Matches;
         InMemDb.Db.Competitions.Find(x => x.CompetitionId == competition.CompetitionId).Players = competition.Players;
         return(DatabaseResult.successful);
     }
     catch (Exception)
     {
         return(DatabaseResult.failed);
     }
 }
示例#9
0
 public DatabaseResult Update(ICompetition competition)
 {
     try
     {
         _context.Competition.First(x => x.CompetitionId == competition.CompetitionId).Matches = competition.Matches;
         _context.Competition.First(x => x.CompetitionId == competition.CompetitionId).Players = competition.Players;
         return(DatabaseResult.successful);
     }
     catch (Exception)
     {
         return(DatabaseResult.failed);
     }
 }
示例#10
0
 public SeasonTeam(ICompetition competition, Team parent, string name, int skill, int pointsForWin, int pointsForTie, IList <SeasonDivision> divisions) :
     base(parent, name, 0, skill, 0, 0, 0, 0, 0, pointsForWin, pointsForTie)
 {
     Competition = competition;
     if (Divisions == null)
     {
         Divisions = new List <SeasonDivision>();
     }
     else
     {
         Divisions = divisions;
     }
 }
示例#11
0
        public RoundAdminViewModel(ICompetition competition)
        {
            this.competition = competition;
            StartCommand = new DelegateCommand(o => !string.IsNullOrEmpty(contestant) &&
                                                !string.IsNullOrEmpty(phone), StartRound);
            ButtonTwoCommand = new DelegateCommand(o => enableButtonTwo, EndRound);

            stopWatch = new Stopwatch();
            uiUpdateTimer = new DispatcherTimer();
            uiUpdateTimer.Tick += UpdateElapsedTime;
            uiUpdateTimer.Interval = TimeSpan.FromMilliseconds(8);

            ButtonText = RunningText;
        }
示例#12
0
        public RoundAdminViewModel(ICompetition competition)
        {
            this.competition = competition;
            StartCommand     = new DelegateCommand(o => !string.IsNullOrEmpty(contestant) &&
                                                   !string.IsNullOrEmpty(phone), StartRound);
            ButtonTwoCommand = new DelegateCommand(o => enableButtonTwo, EndRound);

            stopWatch              = new Stopwatch();
            uiUpdateTimer          = new DispatcherTimer();
            uiUpdateTimer.Tick    += UpdateElapsedTime;
            uiUpdateTimer.Interval = TimeSpan.FromMilliseconds(8);

            ButtonText = RunningText;
        }
示例#13
0
 public void GetFixtures(ICompetition competition)
 {
     if (competition is Division)
     {
         competition.Fixtures = GetFixtures((Division)competition).ToList();
     }
     else if (competition is Cup)
     {
         competition.Fixtures = GetFixtures((Cup)competition).ToList();
     }
     else
     {
         throw new ApplicationException("Unexpected competition type.");
     }
 }
示例#14
0
        /// <summary>
        /// Converts domain object to DTO.
        /// </summary>
        /// <param name="competition">Competition.</param>
        /// <returns>Competition DTO.</returns>
        public static CompetitionDto ToDto(ICompetition competition)
        {
            if (competition == null)
            {
                throw new ArgumentNullException(nameof(competition));
            }

            return(new CompetitionDto(
                       id: competition.Id,
                       name: competition.Name,
                       description: competition.Description,
                       dayOfWeek: competition.DayOfWeek,
                       timeOfDay: competition.TimeOfDay,
                       timePeriod: competition.TimePeriod,
                       organisationId: competition.Organisation.Id));
        }
示例#15
0
        //get the teams from the competition and add them to the group
        public void AddTeamsFromRuleToCompetition(ICompetition oldCompetition, Playoff playoff)
        {
            if (oldCompetition.Name.Equals(FromCompetitionName))
            {
                var oldRankings = oldCompetition.Rankings.Where(r => r.Group.Equals(GroupName) && r.Rank >= FirstRank && r.Rank <= LastRank).ToList();

                var newRankings = new List <PlayoffRanking>();

                oldRankings.ForEach(oldRank =>
                {
                    playoff.AddRanking(oldRank.Team.Name, GroupName, oldRank.Rank);
                });
            }
            else
            {
                throw new PlayoffException("Can't add competition " + oldCompetition.Name + " expecting: " + FromCompetitionName);
            }
        }
示例#16
0
        /// <summary>
        /// Adds the info about the passed <see cref="ICompetition"/> to the provided <see cref="StringBuilder"/>
        /// </summary>
        /// <param name="competition">The <see cref="ICompetition"/> containing data to display</param>
        /// <param name="builder">The <see cref="StringBuilder"/> to which to add the data</param>
        private void AddSportEventData(ICompetition competition, StringBuilder builder)
        {
            Guard.Argument(competition, nameof(competition)).NotNull();
            Guard.Argument(builder, nameof(builder)).NotNull();

            AddEntityData(competition, builder);

            var bookingStatus     = _taskProcessor.GetTaskResult(competition.GetBookingStatusAsync());
            var venue             = _taskProcessor.GetTaskResult(competition.GetVenueAsync());
            var competitionStatus = _taskProcessor.GetTaskResult(competition.GetStatusAsync());
            var conditions        = _taskProcessor.GetTaskResult(competition.GetConditionsAsync());
            var competitors       = _taskProcessor.GetTaskResult(competition.GetCompetitorsAsync());
            var comps             = competitors == null
                ? "null"
                : string.Join(", ", competitors.Select(s => s.ToString("f")));

            builder.Append(" CompetitionStatus=").Append(competitionStatus?.Status)
            .Append(" BookingStatus=").Append(bookingStatus == null ? "null" : Enum.GetName(typeof(BookingStatus), bookingStatus))
            .Append(" Venue=").Append(venue?.Id.ToString() ?? "null")
            .Append(" Conditions=").Append(conditions?.EventMode)
            .Append(" Competitors=[").Append(comps).Append("]");
        }
示例#17
0
        /// <inheritdoc/>
        public async Task CreateAsync(
            IWho who,
            IAuditHeaderWithAuditDetails auditHeader,
            ICompetition competition)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, organisation) {@Who} {@Competition}",
                nameof(this.CreateAsync),
                who,
                competition);

            CompetitionDto dto = CompetitionDto.ToDto(competition);

            this.context.Competitions.Add(dto);
            await this.context.SaveChangesAsync().ConfigureAwait(false);

            Audit.AuditCreate(auditHeader, dto, dto.Id);

            this.logger.LogTrace(
                "EXIT {Method}(who) {@Who}",
                nameof(this.CreateAsync),
                who);
        }
示例#18
0
        /// <inheritdoc/>
        public async Task <ICompetition> GetByIdAsync(IWho who, Guid competitionId)
        {
            this.logger.LogTrace(
                "ENTRY {Method}(who, organisationId) {@Who} {CompetitionId}",
                nameof(this.GetByIdAsync),
                who,
                competitionId);

            ICompetition competition = (await this.context.Competitions
                                        .AsNoTracking()
                                        .TagWith(this.Tag(who, nameof(this.GetByIdAsync)))
                                        .SingleAsync(c => c.Id == competitionId)
                                        .ConfigureAwait(false))
                                       .ToDomain();

            this.logger.LogTrace(
                "EXIT {Method}(who, organisation) {@Who} {@Competition}",
                nameof(this.GetByIdAsync),
                who,
                competition);

            return(competition);
        }
示例#19
0
 public JohnDoe(ICompetition competition)
 {
     _competition = competition;
 }
示例#20
0
 public PlayoffGameCreator(ICompetition competition, bool canTie, int maxOverTimePeriods) : base(canTie, maxOverTimePeriods)
 {
     Competition = competition;
 }
示例#21
0
 public SurveyController()
 {
     surveyRepository         = new SurveyRepository();
     surveyQuestionRepository = new SurveyQuestionRepository();
     this.competitionRepo     = new CompetitionRepository();
 }
 public CompetitionController()
 {
     competitionRepo = new CompetitionRepository();
     surveyRepo      = new SurveyRepository();
 }
示例#23
0
 public SeasonGameCreator(ICompetition season, bool canTie, int maxOverTimePeriods) : base(canTie, maxOverTimePeriods)
 {
     Competition = season;
 }
示例#24
0
 public static void DependencyInjection(IPlayer[] players)
 {
     Players = players;
     Competition = new PoolCompetition(Players);
     Competition.Players.ToList().ForEach(p => Console.WriteLine($"Standard Dependency Injection adding {p.Name}"));
 }