Пример #1
0
            public static void Create()
            {
                var adapter = new GameAdapter();

                Game1 = adapter.RegisiterNewGame();
                Game2 = adapter.RegisiterNewGame();
                Game3 = adapter.RegisiterNewGame();

                adapter.SaveChanges();

                var teamAdapter = new TeamAdapter();
                var team1       = teamAdapter.GetTeamById(ObjectMother.TeamTestData.Team1Id);
                var team2       = teamAdapter.GetTeamById(ObjectMother.TeamTestData.Team2Id);
                var team3       = teamAdapter.GetTeamById(ObjectMother.TeamTestData.Team3Id);

                var gameAdapter = new GameAdapter();

                gameAdapter.JoinExistingGame(team1, ObjectMother.GameTestData.Game1.Id);
                gameAdapter.JoinExistingGame(team2, ObjectMother.GameTestData.Game1.Id);

                gameAdapter.JoinExistingGame(team1, ObjectMother.GameTestData.Game2.Id);
                gameAdapter.JoinExistingGame(team2, ObjectMother.GameTestData.Game2.Id);

                gameAdapter.SaveChanges();
            }
Пример #2
0
        private void ShowResults()
        {
            lstResults.Title   = "Results";
            lstResults.Columns = new List <ListColumn>()
            {
                new ListColumn(LangResources.CurLang.League, 175),
                new ListColumn(LangResources.CurLang.Home, 250),
                new ListColumn(" ", 50, HorizontalAlignment.Center),
                new ListColumn(LangResources.CurLang.Away, 250, HorizontalAlignment.Right)
            };

            List <ListRow> rows = new List <ListRow>();
            TeamAdapter    ta   = new TeamAdapter();
            LeagueAdapter  la   = new LeagueAdapter();

            foreach (Fixture f in SetupData.FixtureData)
            {
                rows.Add(new ListRow(f.UniqueID, new List <object>()
                {
                    la.GetLeague(f.LeagueID).Name,
                    ta.GetTeam(f.TeamIDs[0]).Name,
                    string.Format("{0} - {1}", f.Score[0].ToString(), f.Score[1].ToString()),
                    ta.GetTeam(f.TeamIDs[1]).Name
                }));
            }

            lstResults.Rows          = rows;
            lstResults.SelectionMode = SelectMode.Highlight;
        }
Пример #3
0
        public TeamAdapter Create()
        {
            var tc          = new RestClient(m_Address, m_User, m_Pass);
            var teamAdapter = new TeamAdapter(tc);

            return(teamAdapter);
        }
Пример #4
0
        protected override void SearchText_TextChanged(object sender, TextChangedEventArgs e)
        {
            IEnumerable <Team> teams = ViewModel.Teams.Where(t => t.Name.ToLower().Contains(SearchEditText.Text.ToLower()));

            TeamAdapter.Refresh(teams);
            TeamsRecyclerView.SetAdapter(TeamAdapter);
        }
Пример #5
0
        /// <summary>
        /// Run all the matches for the current game date
        /// </summary>
        /// <param name="MatchCallback"></param>
        public void Run(IMatchCallback MatchCallback)
        {
            MatchPlayer    mp = new MatchPlayer();
            WorldAdapter   wa = new WorldAdapter();
            FixtureAdapter fa = new FixtureAdapter();
            TeamAdapter    ta = new TeamAdapter();
            ManagerAdapter ma = new ManagerAdapter();

            foreach (Fixture f in fa.GetFixtures(wa.CurrentDate))
            {
                mp.Fixture     = f;
                mp.Interactive = false;

                for (int t = 0; t <= 1; t++)
                {
                    if (ma.GetManager(ta.GetTeam(f.TeamIDs[t]).ManagerID).Human)
                    {
                        mp.Interactive = true;
                        break;
                    }
                }

                mp.MatchCallback = MatchCallback;
                mp.StartMatch();
            }

            MatchCallback.MatchdayComplete();
        }
Пример #6
0
        protected override void OnResume()
        {
            base.OnResume();
            Name.Text      = ViewModel.Tournament.Name;
            Sponsor.Text   = ViewModel.Tournament.Sponsor;
            Status.Text    = ViewModel.Tournament.Status;
            StartDate.Text = ViewModel.Tournament.StartDate.ToShortDateString();
            EntryFee.Text  = "$" + ViewModel.Tournament.EntryFee;

            PrizeAdapter = new TextViewWithDeleteActionAdapter(ViewModel.Tournament.Prizes.ToList());
            PrizeAdapter.ItemDeleteClick += DeletePrize;
            PrizeRecyclerView.SetAdapter(PrizeAdapter);

            FacilityAdapter = new TextViewWithDeleteActionAdapter(ViewModel.Tournament.Facilities.ToList());
            FacilityAdapter.ItemDeleteClick += DeleteFacility;
            FacilityRecyclerView.SetAdapter(FacilityAdapter);

            VenueAdapter = new TextViewWithDeleteActionAdapter(ViewModel.Tournament.Venues.ToList());
            VenueAdapter.ItemDeleteClick += DeleteVenue;
            VenueRecyclerView.SetAdapter(VenueAdapter);

            TeamAdapter = new TeamAdapter(ViewModel.Tournament.Teams.ToList());
            TeamAdapter.ItemDeleteClick += OnItemDeleteClick;
            TeamRecyclerView.SetAdapter(TeamAdapter);
        }
Пример #7
0
 public override void OnResume()
 {
     base.OnResume();
     TeamAdapter = new TeamAdapter(ViewModel.Teams);
     TeamAdapter.ItemViewClick   += OnItemViewClick;
     TeamAdapter.ItemDeleteClick += OnItemDeleteClick;
     TeamsRecyclerView.SetAdapter(TeamAdapter);
 }
Пример #8
0
        /// <summary>
        /// Registers the team.
        /// </summary>
        /// <param name="teamName">Name of the team.</param>
        /// <returns></returns>
        public Team RegisterTeam(string teamName)
        {
            var adapter = new TeamAdapter();
            var team    = adapter.RegisterNewTeam(teamName);

            adapter.SaveChanges();
            return(team);
        }
Пример #9
0
        private bool MatchStarting_Worker(Fixture f)
        {
            TeamAdapter ta = new TeamAdapter();

            UI.txtHome.Text = ta.GetTeam(f.TeamIDs[0]).Name;
            UI.txtAway.Text = ta.GetTeam(f.TeamIDs[1]).Name;

            return(true);
        }
Пример #10
0
        /// <summary>
        /// Loop round all AI teams, and select a team appropriate to play the fixture.
        /// </summary>
        public void SelectTeamIfPlaying()
        {
            FixtureAdapter fa = new FixtureAdapter();
            WorldAdapter   wa = new WorldAdapter();
            TeamAdapter    ta = new TeamAdapter();
            ManagerAdapter ma = new ManagerAdapter();

            List <Fixture> AllFixtures = fa.GetFixtures(wa.CurrentDate);

            int TESTf = 0;

            foreach (Fixture f in AllFixtures)
            {
                TESTf++;
                Debug.Print("Fixture " + f.ToString());

                for (int t = 0; t <= 1; t++)
                {
                    Team    ThisTeam = ta.GetTeam(f.TeamIDs[t]);
                    Manager M        = ma.GetManager(ThisTeam.ManagerID);


                    if (!M.Human)
                    {
                        Team          Opposition = ta.GetTeam(f.TeamIDs[1 - t]);
                        PlayerAdapter pa         = new PlayerAdapter();
                        int[,] PlayerGridPositions = new int[5, 8]; // TODO: Maybe not hard code these...
                        for (int x = 0; x <= PlayerGridPositions.GetUpperBound(0); x++)
                        {
                            for (int y = 0; y <= PlayerGridPositions.GetUpperBound(1); y++)
                            {
                                PlayerGridPositions[x, y] = -1;
                            }
                        }


                        Formation TeamFormation      = new FormationAdapter().GetFormation(ThisTeam.CurrentFormation);
                        List <AvailablePlayer> avail = GetEligiblePlayers(ThisTeam, f);

                        foreach (Point2 point in TeamFormation.Points)
                        {
                            AvailablePlayer SelPlayer = FindBestPlayerForPosition(point, avail);
                            if (SelPlayer == null)
                            {
                                throw new Exception("Unable to find a player for this position");
                            }

                            PlayerGridPositions[point.X, point.Y] = SelPlayer.PlayerID;
                            avail.Remove(SelPlayer);
                        }

                        ta.SavePlayerFormation(ThisTeam.UniqueID, TeamFormation.UniqueID, PlayerGridPositions);
                    }
                }
            }
        }
Пример #11
0
            public static void Create()
            {
                var adapter = new TeamAdapter();

                Team1Id = adapter.RegisterNewTeam("OM: Team Name 1").Id;
                Team2Id = adapter.RegisterNewTeam("OM: Team Name 2").Id;
                Team3Id = adapter.RegisterNewTeam("OM: Team Name 3").Id;

                adapter.SaveChanges();
            }
Пример #12
0
        public void RegsiterNewTeamTest()
        {
            var adapter       = new TeamAdapter();
            var newTeamLoaded = adapter.RegisterNewTeam("Test Team Name");

            adapter.SaveChanges();
            var loadedItem = adapter.GetTeamById(newTeamLoaded.Id);

            Assert.AreEqual(newTeamLoaded.Id, loadedItem.Id);
        }
Пример #13
0
        /// <summary>
        /// Reset the Season Stats for all teams
        /// </summary>
        public void ResetSeasonStatistics()
        {
            TeamAdapter ta    = new TeamAdapter();
            List <Team> teams = ta.GetTeams();

            foreach (Team t in teams)
            {
                ta.UpdateTeamSeasonStatistics(t.UniqueID, new TeamStats());
            }
        }
Пример #14
0
        /// <summary>
        /// Loop round all teams, updating the last known selections. This is so the human manager can see the last known starting pick for the AI teams.
        /// </summary>
        public void UpdateLastKnownPicks()
        {
            TeamAdapter ta    = new TeamAdapter();
            List <Team> Teams = ta.GetTeams();

            foreach (Team T in Teams)
            {
                ta.UpdateLastKnownPick(T.UniqueID);
            }
        }
Пример #15
0
        /// <summary>
        /// Updates the team statistics from the fixtures/matches that have just been played
        /// </summary>
        /// <param name="fixtures">List of fixture objects to update</param>
        public void UpdateMatchStats(List <Fixture> fixtures)
        {
            const int POINTS_WON   = 3;
            const int POINTS_DRAWN = 1;

            TeamAdapter ta = new TeamAdapter();

            foreach (Fixture fixture in fixtures)
            {
                TeamStats[] stats = new TeamStats[2];

                for (int t = 0; t <= 1; t++)
                {
                    stats[t] = ta.GetTeam(fixture.TeamIDs[t]).SeasonStatistics;
                    stats[t].GamesPlayed++;
                    stats[t].GoalsScored   += fixture.Score[t];
                    stats[t].GoalsConceded += fixture.Score[1 - t];
                }

                if (fixture.Score[0] == fixture.Score[1])
                {
                    for (int t = 0; t <= 1; t++)
                    {
                        stats[t].Drawn  += 1;
                        stats[t].Points += POINTS_DRAWN;
                    }
                }
                else
                {
                    int WinningTeam = -1;
                    int LosingTeam  = -1;

                    if (fixture.Score[0] > fixture.Score[1])
                    {
                        WinningTeam = 0;
                        LosingTeam  = 1;
                    }
                    else
                    {
                        WinningTeam = 1;
                        LosingTeam  = 0;
                    }

                    stats[WinningTeam].Won += 1;
                    stats[LosingTeam].Lost += 1;

                    stats[WinningTeam].Points += POINTS_WON;
                }

                for (int t = 0; t <= 1; t++)
                {
                    ta.UpdateTeamSeasonStatistics(fixture.TeamIDs[t], stats[t]);
                }
            }
        }
Пример #16
0
        }// End of Constructor function

        public Team addTeam(Team team, UserSystem user_log)
        {
            return(http_service.JSONHttpPettitionObject <Team>(
                       HttpMethod.POST,
                       GetType().Name.ToLower().Replace(
                           TWords.SERVICE,
                           TWords.SLASH),
                       JsonConvert.SerializeObject(
                           TeamAdapter.ObjectToDTO(
                               team))));
        }// End of add Team function
Пример #17
0
 public IActionResult Update([FromBody] TeamBindingModel teamBindingModel)
 {
     TeamAdapter._employeeService = _employeeService;
     if (_teamService.Update(TeamAdapter.ToTeamModel(teamBindingModel)) > 0)
     {
         return(Ok(teamBindingModel));
     }
     else
     {
         return(BadRequest());
     }
 }
Пример #18
0
 public IActionResult Create([FromBody] TeamBindingModel teamBindingModel)
 {
     TeamAdapter._employeeService = _employeeService;
     if (_teamService.Create(TeamAdapter.ToTeamModel(teamBindingModel)) > 0)
     {
         return(Ok(teamBindingModel));
     }
     else
     {
         return(StatusCode(500));
     }
 }
Пример #19
0
        public void PopulatePlayerStatuses(MatchStatus ms, Fixture f)
        {
            List <PlayerStatus> StatusList;

            for (int t = 0; t <= 1; t++)
            {
                ms.OverallPlayerEffectiveRating[t] = 0;

                TeamAdapter ta   = new TeamAdapter();
                Team        Team = ta.GetTeam(f.TeamIDs[t]);

                PlayerAdapter pa = new PlayerAdapter();
                StatusList = new List <PlayerStatus>();

                TacticEvaluation Eval = new TacticEvaluation();

                int          selected                 = 0;
                int          totalEffectiveRating     = 0;
                const double HealthDeteriorationPower = 4;

                foreach (KeyValuePair <int, TeamPlayer> kvp in Team.Players)
                {
                    Player p = pa.GetPlayer(kvp.Value.PlayerID);

                    PlayerStatus ps = new PlayerStatus();
                    ps.PlayerID      = kvp.Value.PlayerID;
                    ps.Playing       = kvp.Value.Selected;
                    ps.CurrentHealth = p.Health;
                    ps.CurrentHealthDeterioration = Math.Pow(1 - (Convert.ToDouble(p.Fitness) / 100), HealthDeteriorationPower);

                    if (ps.Playing == PlayerSelectionStatus.Starting)
                    {
                        selected++;

                        PlayerPosition pos = GridLengthToPosition(kvp.Value);
                        ps.EffectiveRating    = CalculatePlayerEffectivenessInPosition(kvp.Value);
                        totalEffectiveRating += ps.EffectiveRating;

                        Eval.AddRatingForPosition(pos, ps.EffectiveRating);
                        StatusList.Add(ps);
                    }

                    ps = null;
                }

                ms.OverallPlayerEffectiveRating[t] = (selected > 0 ? totalEffectiveRating / selected : 0);

                ms.PlayerStatuses[t] = StatusList;
                ms.Evaluation[t]     = Eval;
                StatusList           = null;
            }
        }
Пример #20
0
        public SpeedUpTc(TeamAdapter teamAdapter, string pingBranch, TimeSpan pingRate)
        {
            m_TeamAdapter = teamAdapter;
            m_PingBranch  = pingBranch;
            m_PingRate    = pingRate;

            var speedUpTcThread = new Thread(PingTc)
            {
                IsBackground = true
            };

            speedUpTcThread.Start();
        }
Пример #21
0
        public void GetTeam_Valid_NotNull_Test()
        {
            //Arrange
            var idToRead = 0;
            _repositoryMock.Setup(r => r.Read(idToRead)).Returns(Task.FromResult(_storedTeam));
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var returnedTeam = teamFacade.Read(idToRead);

            //Assert
            Assert.IsNotNull(returnedTeam);
        }
        public void SaveFormation()
        {
            TeamAdapter ta = new TeamAdapter();

            ta.SavePlayerFormation(team.UniqueID, CurrentFormationID, PlayerGridPositions);

            UiUtils.OpenDialogBox(UiUtils.MainWindowGrid, LangResources.CurLang.Formation, LangResources.CurLang.FormationSavedSuccessfully, new List <DialogButton>()
            {
                new DialogButton(LangResources.CurLang.OK, null, null)
            });

            ChangesNotSaved = false;
        }
Пример #23
0
        public void CreateTeam_Success_Test()
        {
            //Arrange 

            const int expectedReturnId = 0;
            _repositoryMock.Setup(r => r.Create(_storedTeam)).Returns(Task.FromResult(expectedReturnId));
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var actualId = teamFacade.Create(_team);

            //Assert
            Assert.IsTrue(expectedReturnId == actualId.Result);
        }
Пример #24
0
        public void AllPlayersDailyUpdate()
        {
            const double standardDailyIncrement = 7;

            PlayerAdapter  pa      = new PlayerAdapter();
            TeamAdapter    ta      = new TeamAdapter();
            FixtureAdapter fa      = new FixtureAdapter();
            List <Player>  players = pa.GetPlayers();

            for (int i = 0; i < players.Count; i++)
            {
                Player p = players[i];

                if (p.Health < 100)
                {
                    // If player was not in a game today, then we increase their health
                    bool doUpdate = true;

                    if (p.CurrentTeam != -1)
                    {
                        if (ta.GetPlayerSelectionStatus(p.UniqueID, p.CurrentTeam, false) != PlayerSelectionStatus.None)
                        {
                            if (fa.IsTodayAMatchDay(p.CurrentTeam))
                            {
                                doUpdate = false;
                            }
                        }
                    }


                    if (doUpdate)
                    {
                        double increment = standardDailyIncrement * ((double)p.Fitness / 100);
                        if (increment < 1)
                        {
                            increment = 1;
                        }

                        p.Health += increment;

                        if (p.Health > 100)
                        {
                            p.Health = 100;
                        }

                        pa.UpdatePlayer(p);
                    }
                }
            }
        }
Пример #25
0
        private bool MatchFinished_Worker(Fixture f)
        {
            TeamAdapter ta     = new TeamAdapter();
            string      result = "{0} {1} - {2} {3}";

            result = string.Format(result, ta.GetTeam(f.TeamIDs[0]).Name,
                                   f.Score[0],
                                   f.Score[1],
                                   ta.GetTeam(f.TeamIDs[1]).Name);

            System.Diagnostics.Debug.WriteLine(result);

            return(true);
        }
Пример #26
0
        public void SetupGameScreenData(GameScreenSetup dataFromUI)
        {
            if (dataFromUI.ManagerData == null)
            {
                throw new Exception("ManagerData is null");
            }

            TeamAdapter ta = new TeamAdapter();

            SetupData                    = dataFromUI;
            SetupData.TeamData           = ta.GetTeamByManager(SetupData.ManagerData.UniqueID);
            SetupData.ShowContinueButton = true;

            SetupData.Title1 = SetupData.TeamData.Name;
            SetupData.Title2 = SetupData.ManagerData.Name;

            UpdateEmails();
            UpdateLeagueTable();
        }
Пример #27
0
        /// <summary>
        ///     Test validation of non-existing team. Test must return false
        ///     to indicate a team does not exist.
        /// </summary>
        public void CheckExistingTeam_NonExisting_False_Test()
        {
            //Arrange
            var id = 0;
            var repositoryMock = new Mock<IRepository<StoredTeam>>();
            var storedTeam = new StoredTeam
            {
                Id = 0,
                Name = "name",
                MetaData = "metaData",
                Users = new List<StoredUser>
                {
                    new StoredUser { Id = 1 },
                    new StoredUser { Id = 2 },
                    new StoredUser { Id = 3 }
                }
            };
            repositoryMock.Setup(r => r.Read(id));

            var teamFacade = new TeamAdapter(repositoryMock.Object);

            //Act
            var result = TeamValidator.ValidateExistence(0, teamFacade);

            //Assert
            Assert.IsFalse(result);
        }
Пример #28
0
        public void GetAllTeams_Valid_ReturnsCorrectTeams_Test()
        {
            //Arrange
            var team1 = new StoredTeam {Name = "name1", MetaData = "metaData1", Users = new List<StoredUser> { new StoredUser { Id = 1} } };
            var team2 = new StoredTeam {Name = "name2", MetaData = "metaData2", Users = new List<StoredUser> { new StoredUser { Id = 2 } } };
            var team3 = new StoredTeam {Name = "name3", MetaData = "metaData3", Users = new List<StoredUser> { new StoredUser { Id = 3 } } };
            IEnumerable<StoredTeam> list = new List<StoredTeam> {team1, team2, team3};
            _repositoryMock.Setup(r => r.Read()).Returns(list.AsQueryable());
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var actualTeams = teamFacade.Read().ToArray();

            //Assert
            var counter = 0;
            foreach (var expectedTeam in list)
            {
                var returnedTeam = actualTeams[counter];
                Assert.IsTrue(expectedTeam.Name == returnedTeam.Name);
                Assert.IsTrue(expectedTeam.MetaData == returnedTeam.MetaData);
                Assert.IsTrue(expectedTeam.Id == returnedTeam.Id);
                Assert.IsTrue(expectedTeam.Users.ToArray().Length == returnedTeam.UserIDs.Length);
                counter++;
            }
        }
Пример #29
0
 public ServiceLogic()
 {
     m_TeamAdapter           = GenerateTeamAdapter();
     m_AdminEmails           = ReadAppSetting("AdminUserEmail").Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
     m_FailedBuildsRetriever = new FailedBuildsRetriever(m_TeamAdapter, m_AdminEmails);//TODO: Add the right e-mail
 }
Пример #30
0
        public void GetAllTeams_Valid_ReturnsCorrectNumberOfTeams_Test()
        {
            //Arrange
            var team1 = new StoredTeam {Name = "name1", MetaData = "metaData1"};
            var team2 = new StoredTeam {Name = "name2", MetaData = "metaData2"};
            var team3 = new StoredTeam {Name = "name3", MetaData = "metaData3"};
            IEnumerable<StoredTeam> list = new List<StoredTeam> {team1, team2, team3};
            _repositoryMock.Setup(r => r.Read()).Returns(list.AsQueryable());
            var teamFacade = new TeamAdapter(_repositoryMock.Object);
            var expectedCount = 3;

            //Act
            var actualCount = teamFacade.Read().Count();

            //Assert
            Assert.IsTrue(expectedCount == actualCount);
        }
Пример #31
0
        public async void DeleteTeam_Fail_TeamDoesNotExist_Test()
        {
            //Arrange
            var toDeleteId = 0;
            _repositoryMock.Setup(r => r.DeleteIfExists(toDeleteId)).Returns(Task.FromResult(false));
            var adapter = new TeamAdapter(_repositoryMock.Object);

            //Act
            var result = await adapter.DeleteIfExists(toDeleteId);

            //Assert
            //Exception must be thrown
        }
Пример #32
0
        private void TacticsButton_Click(object sender, RoutedEventArgs e)
        {
            TeamAdapter ta = new TeamAdapter();

            ShowTacticsScreen(ta.GetTeamByManager(HumanManagers[PlayingHumanManager].CurrentTeam));
        }
Пример #33
0
        private void NextManagerOrContinueDay()
        {
            ManagerAdapter ma = new ManagerAdapter();
            FixtureAdapter fa = new FixtureAdapter();
            WorldAdapter   wa = new WorldAdapter();
            TeamAdapter    ta = new TeamAdapter();

            if (HumanManagers == null)
            {
                // Going to first manager, which means we have to run Start Of Day, unless loading from a savegame
                if (!SaveGameJustLoaded)
                {
                    RunProcesses(false);
                }
                else
                {
                    SaveGameJustLoaded = false;
                }



                HumanManagers       = ma.GetHumanManagers();
                PlayingHumanManager = 0;
                wa.CurrentManagerID = HumanManagers[PlayingHumanManager].UniqueID;

                if (HumanManagers.Count() < 1)
                {
                    throw new Exception("No human managers");
                }
            }
            else
            {
                // Check selections if a matchday
                if (fa.IsTodayAMatchDay(HumanManagers[PlayingHumanManager].CurrentTeam))
                {
                    const int REQUIREDCOUNT = 11;
                    int       PlayerCount   = ta.CountSelectedPlayers(HumanManagers[PlayingHumanManager].CurrentTeam);
                    if (PlayerCount < REQUIREDCOUNT)
                    {
                        UiUtils.OpenDialogBox(UiUtils.MainWindowGrid, LangResources.CurLang.MatchDay,
                                              string.Format(LangResources.CurLang.YouHaveNotSelectedEnoughPlayers, PlayerCount, REQUIREDCOUNT),
                                              new List <DialogButton>()
                        {
                            new DialogButton(LangResources.CurLang.OK, null, null)
                        });

                        return;
                    }
                }

                // Go to next human manager
                PlayingHumanManager++;
                if (PlayingHumanManager >= HumanManagers.Count())
                {
                    HumanManagers       = null;
                    wa.CurrentManagerID = -1;
                }
                else
                {
                    wa.CurrentManagerID = HumanManagers[PlayingHumanManager].UniqueID;
                }
            }

            if (HumanManagers != null)
            {
                // Display home screen for the current manager
                Manager PlayingManager = HumanManagers[PlayingHumanManager];
                ShowHomeScreenForCurrentManager(PlayingManager);

                if (fa.IsTodayAMatchDay(PlayingManager.CurrentTeam))
                {
                    Fixture f          = fa.GetNextFixture(PlayingManager.CurrentTeam, wa.CurrentDate);
                    int     Opposition = (f.TeamIDs[0] != PlayingManager.CurrentTeam ? f.TeamIDs[0] : f.TeamIDs[1]);
                    string  Message    = string.Format(LangResources.CurLang.YouHaveAMatchAgainst, ta.GetTeam(Opposition).Name);

                    UiUtils.OpenDialogBox(UiUtils.MainWindowGrid, LangResources.CurLang.MatchDay, Message,
                                          new List <DialogButton>()
                    {
                        new DialogButton(LangResources.CurLang.OK, null, null)
                    });
                }
            }
            else
            {
                if (fa.IsTodayAMatchDay())
                {
                    ShowGameScreen(new MatchdayMain(), true);
                }
                else
                {
                    RunProcesses(true);
                }
            }
        }
Пример #34
0
        public void CreateSeasonFixtures()
        {
            // First find first available Saturday
            WorldAdapter wa             = new WorldAdapter();
            DateTime     FirstMatchDate = wa.MainSeasonDate;

            while (FirstMatchDate.DayOfWeek != DayOfWeek.Saturday)
            {
                FirstMatchDate = FirstMatchDate.AddDays(1);
            }

            FixtureAdapter fa = new FixtureAdapter();

            fa.ClearFixtures();

            LeagueAdapter la      = new LeagueAdapter();
            List <League> Leagues = la.GetLeagues();

            foreach (League L in Leagues)
            {
                // Get teams in the league we're looking at.
                TeamAdapter ta       = new TeamAdapter();
                List <Team> TeamList = ta.GetTeamsByLeague(L.UniqueID);

                // Create that league's fixtures (Circle Method)
                // https://en.wikipedia.org/wiki/Round-robin_tournament

                int NumberOfTeams = TeamList.Count();
                int Half          = NumberOfTeams / 2;

                int[] TeamIDs = new int[NumberOfTeams + 1]; // Create a grid with an additional blank space to allow rotation
                for (int i = 0; i < TeamList.Count(); i++)
                {
                    TeamIDs[i] = TeamList[i].UniqueID;
                }
                TeamIDs[NumberOfTeams] = -999; // For debugging

                DateTime MatchDate = FirstMatchDate;

                for (int HomeAwayLeg = 1; HomeAwayLeg <= 2; HomeAwayLeg++)
                {
                    bool homeFirst = (HomeAwayLeg == 1);

                    for (int wk = 1; wk <= NumberOfTeams - 1; wk++)
                    {
                        // Make the week's fixtures
                        for (int gridpos = 0; gridpos < Half; gridpos++)
                        {
                            Fixture f = new Fixture();
                            f.Date     = MatchDate;
                            f.LeagueID = L.UniqueID;
                            if (homeFirst)
                            {
                                f.TeamIDs[0] = TeamIDs[gridpos];
                                f.TeamIDs[1] = TeamIDs[gridpos + Half];
                            }
                            else
                            {
                                f.TeamIDs[1] = TeamIDs[gridpos];
                                f.TeamIDs[0] = TeamIDs[gridpos + Half];
                            }

                            fa.AddFixture(f);
                        }

                        // Rotate the grid! (Clockwise, as opposed to the description in the wiki link)
                        // Top "row" (first half) need to move L to R
                        // Bottom "row" (second half) need to move R to L
                        // Bottom left cell moves into position 1 and position 0 doesn't move
                        // Comments below refer to 16 teams, grid positions 0-7 (top), 8-15 (bottom), 16 spare.

                        TeamIDs[NumberOfTeams] = TeamIDs[Half - 1]; // Top right cell to bottom row, spare cell
                        for (int i = Half - 2; i >= 1; i--)         // Move top row, except cell zero and rightmost cell, right one
                        {
                            TeamIDs[i + 1] = TeamIDs[i];
                        }
                        TeamIDs[1] = TeamIDs[Half];                     // Bottom left cell to position 1
                        for (int i = Half; i <= NumberOfTeams - 1; i++) // Shift entire bottom row (including spare, excluding bottom left) left by one cell
                        {
                            TeamIDs[i] = TeamIDs[i + 1];
                        }

                        // Go to next date
                        MatchDate = MatchDate.AddDays(7);
                        homeFirst = !homeFirst;
                    }
                }
            }
        }
Пример #35
0
 private void OnItemDeleteClick(object sender, string userteamId)
 {
     ViewModel.DeleteTeam(userteamId);
     TeamAdapter.Refresh(ViewModel.Teams);
     TeamsRecyclerView.SetAdapter(TeamAdapter);
 }
Пример #36
0
        public async void GetTeam_Invalid_NoExistingTeamMustReturnNull_Test()
        {
            //Arrange
            var idToRead = 0;
            _repositoryMock.Setup(r => r.Read(idToRead));
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var returnedTeam = await teamFacade.Read(idToRead);

            //Assert
            Assert.IsNull(returnedTeam);
        }
Пример #37
0
        public void ShowTeamScreen(int TeamID)
        {
            TeamAdapter ta = new TeamAdapter();

            ShowTeamScreen(ta.GetTeam(TeamID));
        }
Пример #38
0
        public void GetTeam_Valid_CorrectTeamInfo_Test()
        {
            //Arrange
            var idToRead = 0;
            _repositoryMock.Setup(r => r.Read(idToRead)).Returns(Task.FromResult(_storedTeam));
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var returnedTeam = teamFacade.Read(idToRead).Result;

            //Assert
            Assert.IsTrue(_team.Name == returnedTeam.Name);
            Assert.IsTrue(_team.MetaData == returnedTeam.MetaData);
            Assert.IsTrue(_team.Id == returnedTeam.Id);
            Assert.IsTrue(_team.UserIDs.Length == returnedTeam.UserIDs.Length);
        }
Пример #39
0
        public async void GetTeam_Valid_IsTeam_Test()
        {
            //Arrange
            var idToRead = 0;
            _repositoryMock.Setup(r => r.Read(idToRead)).Returns(Task.FromResult(_storedTeam));
            var teamFacade = new TeamAdapter(_repositoryMock.Object);

            //Act
            var returnedTeam = await teamFacade.Read(idToRead);

            //Assert
            Assert.IsInstanceOfType(returnedTeam, typeof (Team));
        }
Пример #40
0
        public async void DeleteTeam_Success_Test()
        {
            //Arrange 
            var repositoryMock = new Mock<IRepository<StoredTeam>>();
            const int toDeleteId = 0;
            repositoryMock.Setup(r => r.DeleteIfExists(toDeleteId)).Returns(Task.FromResult(true));
            var adapter = new TeamAdapter(repositoryMock.Object);


            //Act

            var result = await adapter.DeleteIfExists(toDeleteId);

            //Assert
            Assert.IsTrue(result);
        }