private static async Task <Models.Db.Team> CreateTeam(IDbConnection c, IDbTransaction t, IStorageProvider storage, GroupCoords coords, FootballData.Team team, int sequenceOrder)
        {
            var logoImgUrl = ImportImage(c, t, storage, team.CrestUrl);

            var dbTeam = new Models.Db.Team
            {
                Name       = team.Name,
                KeyName    = String.IsNullOrWhiteSpace(team.Code) ? team.Name.Substring(0, 3) : team.Code,
                LogoImgUrl = logoImgUrl,
                Status     = (int)TeamStatus.Inscribed
            };

            dbTeam.Id = await c.InsertAsync(dbTeam, t);

            await c.InsertAsync(new TournamentTeam
            {
                IdTeam       = dbTeam.Id,
                IdTournament = coords.IdTournament
            }, t);

            var teamGroup = new TeamGroup
            {
                IdTeam        = dbTeam.Id,
                IdGroup       = coords.IdGroup,
                IdStage       = coords.IdStage,
                IdTournament  = coords.IdTournament,
                SequenceOrder = sequenceOrder
            };

            await c.InsertAsync(teamGroup, t);

            return(dbTeam);
        }
Esempio n. 2
0
    private static TeamGroup Parse(string fullString)
    {
        TeamGroup tg    = new TeamGroup();
        int       index = fullString.IndexOf("group = '");

        if (index >= 0)
        {
            index += "group = '".Length;
            int endIndex = fullString.IndexOf("'", index);
            if (endIndex >= 0)
            {
                tg.Group  = fullString.Substring(index, endIndex - index).Trim(' ', '\'');
                endIndex += 1;
                index     = fullString.IndexOf(" and (team in (", endIndex);
                if (index >= 0)
                {
                    index   += " and (team in (".Length;
                    endIndex = fullString.IndexOf(")", index);
                    if (endIndex >= 0)
                    {
                        string allTeamsString = fullString.Substring(index, endIndex - index);
                        tg.Teams = allTeamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                                   .Select(t => t.Trim(' ', '\''))
                                   .ToArray();
                    }
                }
            }
        }
        return(tg);
    }
Esempio n. 3
0
        public static bool IsIncludedIn(this Team subjectTeam, TeamGroup teamGroup)
        {
            // Test multi-team TeamGroups.
            switch (teamGroup)
            {
            case TeamGroup.None:
                // TODO: See if it's necessary (we might not need to check for `TeamGroup.None` ever).
                return(false);

            case TeamGroup.All:
                return(true);

            case TeamGroup.FriendliesAndNeutrals:
                return(subjectTeam.Equals(Team.Friendly) || subjectTeam.Equals(Team.Neutral));

            case TeamGroup.FriendliesAndEnemies:
                return(subjectTeam.Equals(Team.Friendly) || subjectTeam.Equals(Team.Enemy));

            case TeamGroup.NeutralsAndEnemies:
                return(subjectTeam.Equals(Team.Neutral) || subjectTeam.Equals(Team.Enemy));

            case TeamGroup.Friendlies:
            case TeamGroup.Neutrals:
                return(((int)subjectTeam) + 1 == (int)teamGroup);

            case TeamGroup.Enemies:
                return(((int)subjectTeam) + 2 == (int)teamGroup);

            default:
                throw new Exception($"Given multi-team TeamGroup {teamGroup.ToString()} isn't implemented for extension method 'IsIncludedIn'.");
            }
        }
Esempio n. 4
0
 public static WTeamGroup ConvertTeamGroup(TeamGroup DbTeamGroup)
 {
     return(new WTeamGroup
     {
         Id = DbTeamGroup.Id,
         Title = DbTeamGroup.Title,
         Uid = DbTeamGroup.Uid
     });
 }
Esempio n. 5
0
    private void Start()
    {
        players = new List <GameObject>();

        playerTeams = new List <List <GameObject> > {
            new List <GameObject>(), new List <GameObject>()
        };

        clientTeam = TeamGroup.TeamNotAssigned;
    }
Esempio n. 6
0
        public IList<TeamGroup> GetAllTeamGroups(string openId)
        {
            IDictionary<string, string> companyNameDict = DAOProperty.GetComanyNameDictionary(openId);

            IList<TeamGroup> groupList = DAOProperty.GetAllTeams(openId);
            IList<CarEntity> carList = DAOProperty.GetAllCars(openId);

            // tid=0的情况的处理
            IList<string> emptyTeamList = GetEmptyTeamList(carList);
            foreach (string cid in emptyTeamList)
            {
                TeamGroup teamGroup = new TeamGroup()
                {
                    cid = cid,
                    cname = companyNameDict[cid],
                    tid = "0",
                    tname = "无车队",
                    carList = new List<CarRealtimeInfo>()
                };
                groupList.Add(teamGroup);
            }

            IList<string> vidList = new List<string>();
            foreach (CarEntity car in carList)
            {
                vidList.Add(car.vid);
            }
            IList<CarRealtimeData> carDataList = DAOProperty.GetAllCarRealtimeDatas(openId, vidList, "30");

            // Generate a dictionary of CarRealtimeData
            IDictionary<string, CarRealtimeData> carDataDict = new Dictionary<string, CarRealtimeData>();
            foreach (CarRealtimeData item in carDataList)
            {
                carDataDict.Add(item.vid, item);
            }
            // 对车辆分组groupList按照公司ID来排序, cid
            IList<TeamGroup> newGroupList = groupList.OrderBy((item) => item.cid).ToList();

            foreach (TeamGroup team in newGroupList)
            {
                team.cname = companyNameDict[team.cid];
                team.carList = (from CAR in carList
                                where (CAR.tid.Equals(team.tid) && CAR.cid.Equals(team.cid) )
                                select new CarRealtimeInfo()
                                {
                                    vid = CAR.vid ?? string.Empty,
                                    vLicense = CAR.vLicense ?? string.Empty,
                                    position = (!string.IsNullOrEmpty(CAR.vid) && carDataDict.ContainsKey(CAR.vid)) ? carDataDict[CAR.vid].position : string.Empty,
                                    speed = (!string.IsNullOrEmpty(CAR.vid) && carDataDict.ContainsKey(CAR.vid)) ? carDataDict[CAR.vid].speed : string.Empty,
                                    gpsTime = (!string.IsNullOrEmpty(CAR.vid) && carDataDict.ContainsKey(CAR.vid)) ? carDataDict[CAR.vid].gpsTime : string.Empty
                                }).ToList<CarRealtimeInfo>();
            }

            return newGroupList;
        }
        public TeamEditPage(TeamMainPage _TeamMainPage, TeamGroup TGroup)
        {
            InitializeComponent();
            LoadWindowParent(_TeamMainPage);
            EventsInitialize();

            this.TGroup = TGroup;

            TextBox_TeamName.Text = TGroup.Title;
            TextBox_TeamUid.Text  = TGroup.Uid;
        }
Esempio n. 8
0
        public TeamEditAccessPage(TeamMainPage _TeamMainPage, TeamGroup TGroup)
        {
            InitializeComponent();
            LoadParentWindows(_TeamMainPage);
            NetworkEvents();
            EventsInitialize();

            this.TGroup = TGroup;

            DataGrid_Access.ItemsSource = AccessCollecton;
            DataGrid_Access.IsEnabled   = false;

            Sender.SendToServer("Access.GetAll");
        }
Esempio n. 9
0
        /// <summary>
        /// Loads the team group.
        /// </summary>
        /// <returns>TeamGroup</returns>
        /// <param name="leagueName">string</param>
        /// <param name="year">int</param>
        /// <param name="database">Db</param>
        /// <param name="seriesLength">int</param>
        public static TeamGroupTree LoadRoot(string leagueName, int year, Db database, int seriesLength = 3)
        {
            TeamGroupTree league = null;
            Dictionary <string, TeamGroup> divisions = new Dictionary <string, TeamGroup>();

            SQLStoredProcedure sp = StoredProcedureManager.Get("GetDivisionInfo");

            sp.Parameters = new object[] { leagueName, year };
            SQLQueryResult result        = database.ExecuteQuery(sp.Text);
            DataTable      teamGroupInfo = result.DataTable;
            string         leagueID      = teamGroupInfo.Rows[0]["lgID"].ToString();

            foreach (DataRow row in teamGroupInfo.Rows)
            {
                string    teamID   = row["teamID"].ToString();
                string    teamName = row["name"].ToString();
                string    divID    = row["divID"].ToString();
                TeamGroup group    = null;
                Team      team     = null;

                team = DatabaseTeamLoader.LoadTeam(teamName, year, database);
                if (!divisions.ContainsKey(divID))
                {
                    group = new TeamGroup(divID, divID);
                    divisions.Add(divID, group);
                    if (!group.Contains(team))
                    {
                        group.Add(team);
                    }
                }
                else
                {
                    divisions[divID].Add(team);
                }
                Console.WriteLine($"Added {team} to division '{divID}'");
                System.Threading.Thread.Sleep(150);
            }
            league = new TeamGroupTree(leagueID, leagueName, seriesLength);

            foreach (TeamGroup division in divisions.Values)
            {
                league.Add(division);
                Console.WriteLine($"Added division '{division.Name}' to league '{league.Name}'");
                System.Threading.Thread.Sleep(150);
            }

            return(league);
        }
Esempio n. 10
0
    public void Register(GameObject adding, TeamGroup team)
    {
        players.Add(adding);
        playerTeams[(int)team].Add(adding);
        adding.GetComponent <FaceoffDeath>().OnPlayerDeath += PlayerDied;

        // Make friendlies and enemies correct color
        if (team == clientTeam)
        {
            adding.GetComponentInChildren <MeshRenderer>().material.color = Color.blue;
        }
        else
        {
            adding.GetComponentInChildren <MeshRenderer>().material.color = Color.red;
        }
    }
Esempio n. 11
0
        private void Button_TeamAdd_Click(object sender, RoutedEventArgs e)
        {
            var TGroup = new TeamGroup();

            TGroup.Uid   = TextBox_TeamUid.Text;
            TGroup.Title = TextBox_TeamName.Text;

            if (!Sender.SendToServer("TeamGroup.Add", TGroup))
            {
                new AlertWindow("Ошибка", AlertWindow.AlertCode.SendToServer);
            }
            else
            {
                TextBox_TeamUid.IsEnabled  = false;
                TextBox_TeamName.IsEnabled = false;
            }
        }
Esempio n. 12
0
        public static Team?AsSingleTeam(this TeamGroup teamGroup)
        {
            switch (teamGroup)
            {
            case TeamGroup.Friendlies:
                return(Team.Friendly);

            case TeamGroup.Neutrals:
                return(Team.Neutral);

            case TeamGroup.Enemies:
                return(Team.Enemy);

            default:
                return(null);
            }
        }
Esempio n. 13
0
    public void PlayerDied(GameObject deadPlayer, TeamGroup team)
    {
        players.Remove(deadPlayer);
        playerTeams[(int)team].Remove(deadPlayer);

        if (playerTeams[0].Count == 0 || playerTeams[1].Count == 0)
        {
            TeamGroup        winners   = playerTeams[0].Count > 0 ? TeamGroup.TeamOne : TeamGroup.TeamTwo;
            NotificationType notifType =
                deadPlayer.GetPhotonView().IsMine ? NotificationType.Bad : NotificationType.Good;

            NotificationSystem.Instance.Notify(new Notification($"Team {(int)winners + 1} won!", notifType));
            if (PhotonNetwork.IsMasterClient)
            {
                StartCoroutine(StopGame());
            }
        }
    }
        static void RandomFacts(ref StreamWriter write, ref List <SuperBowl> listOfSuperBowls)
        {
            write.WriteLine("Here are some superbowl fun facts\n\n");
            var coachQuery = from superBowl in listOfSuperBowls
                             group superBowl by superBowl.WinningCoach into CoachGroup
                             orderby CoachGroup.Count() descending
                             select CoachGroup;


            write.WriteLine("The winningist coach is " + coachQuery.First().Key + ". He has won " + coachQuery.First().Count());

            var coachQuery2 = from superBowl in listOfSuperBowls
                              group superBowl by superBowl.LosingCoach into CoachGroup2
                              orderby CoachGroup2.Count() descending
                              select CoachGroup2;

            write.WriteLine("The coach that has lost the most superbowls is " + coachQuery2.First().Key + ". He has lost " + coachQuery2.First().Count());

            var WinningQuery = from superBowl in listOfSuperBowls
                               group superBowl by superBowl.WinningTeamName into TeamGroup
                               orderby TeamGroup.Count() descending
                               select TeamGroup;

            write.WriteLine("The team that has won the most superbowls is " + WinningQuery.First().Key + ". they have won " + WinningQuery.First().Count());

            var LosingQuery = from superBowl in listOfSuperBowls
                              group superBowl by superBowl.LosingTeamName into TeamGroup2
                              orderby TeamGroup2.Count() descending
                              select TeamGroup2;

            write.WriteLine("The team that has won the most superbowls is " + LosingQuery.First().Key +
                            ". they have lost " + LosingQuery.First().Count());

            double averageValue = listOfSuperBowls.Average(x => x.Attendance);

            write.WriteLine("Average attendance of all superbowls was " + averageValue.ToString("n0"));

            var PointDifferenceQuery = from superBowl in listOfSuperBowls
                                       orderby superBowl.PointDifference descending
                                       select superBowl;

            write.WriteLine($"The super bowl with the biggest point difference was Super Bowl {PointDifferenceQuery.First().SuperBowlRomanNumeral}" +
                            $" in {PointDifferenceQuery.First().Date.Year}. It had a point difference of {PointDifferenceQuery.First().PointDifference}.");
        }
Esempio n. 15
0
        private void UpdateTeamGroup(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "teams.edit"))
            {
                return;
            }

            try
            {
                using (var db = new DatabaseContext())
                {
                    var MTeamGroup = Package.Unpacking <TeamGroup>(ClientResponse.DataBytes);

                    var DbTeamGroupCache = new TeamGroup
                    {
                        Id     = MTeamGroup.Id,
                        Uid    = MTeamGroup.Uid,
                        Title  = MTeamGroup.Title,
                        UserId = MTeamGroup.UserId
                    };

                    var DbTeamGroup = db.TeamGroups.FirstOrDefault(t => t.Id == MTeamGroup.Id);

                    DbTeamGroup.Title = MTeamGroup.Title;
                    DbTeamGroup.Uid   = MTeamGroup.Uid;

                    db.SaveChanges();

                    Debug.Log($"Информация о команде обновлена:\n" +
                              $"Id - {DbTeamGroupCache.Id} > {DbTeamGroup.Id}\n" +
                              $"TeamUid - {DbTeamGroupCache.Uid} > {DbTeamGroup.Uid}\n" +
                              $"Title - {DbTeamGroupCache.Title} > {DbTeamGroup.Title}\n" +
                              $"UserId - {DbTeamGroupCache.UserId} > {DbTeamGroup.UserId}", ConsoleColor.Magenta);

                    Sender.Broadcast("TeamGroup.Update.Confirm", DbTeamGroup, ClientResponse.WindowUid);
                }
            }
            catch (DbUpdateException ex)
            {
                Debug.LogError("Возникла ошибка при обновлении команды в базе данных! Код ошибки:\n" + ex);

                Sender.Send(NetworkClient, "TeamGroup.Update.Error");
            }
        }
Esempio n. 16
0
        public void RoundRobin_Success()
        {
            // Arrange
            var teams = new[]
            {
                new Team
                {
                    Id = 1
                },
                new Team
                {
                    Id = 2
                },
                new Team
                {
                    Id = 3
                },
                new Team
                {
                    Id = 4
                }
            };
            var group = new Group
            {
                Id         = 1,
                TeamGroups = new List <TeamGroup>()
            };

            foreach (var team in teams)
            {
                var teamGroup = new TeamGroup
                {
                    Group = group,
                    Team  = team
                };
                group.TeamGroups.Add(teamGroup);
            }

            // Act
            var matches = new RoundRobinMatchmake().Matching(group);

            // Assert
            Assert.That(matches, Has.Count.EqualTo(6));
        }
Esempio n. 17
0
        private static Group ArrangeGroup()
        {
            var teams = new[]
            {
                new Team
                {
                    Id   = 1,
                    Tier = Tier.First
                },
                new Team
                {
                    Id   = 2,
                    Tier = Tier.Second
                },
                new Team
                {
                    Id   = 3,
                    Tier = Tier.Third
                },
                new Team
                {
                    Id   = 4,
                    Tier = Tier.Fourth
                }
            };
            var group = new Group
            {
                Id         = 1,
                TeamGroups = new List <TeamGroup>()
            };

            foreach (var team in teams)
            {
                var teamGroup = new TeamGroup
                {
                    Group = group,
                    Team  = team
                };
                group.TeamGroups.Add(teamGroup);
            }

            return(group);
        }
Esempio n. 18
0
        private static void DrawSetIntoGroups(List <Group> groups, List <Pot> firstPotsSet, int set)
        {
            foreach (var group in groups.Where(g => groups.IndexOf(g) % 2 == set))
            {
                foreach (var pot in firstPotsSet)
                {
                    var teams      = pot.TeamPots.Select(tp => tp.Team).ToArray();
                    var randomTeam = teams[_random.Next(0, teams.Length)];

                    var randomTeamPot = pot.TeamPots.Single(tp => tp.TeamId == randomTeam.Id);
                    pot.TeamPots.Remove(randomTeamPot);

                    var teamGroup = new TeamGroup
                    {
                        Group = group,
                        Team  = randomTeam
                    };
                    group.TeamGroups.Add(teamGroup);
                }
            }
        }
Esempio n. 19
0
        public static List <Team> AsTeamList(this TeamGroup teamGroup)
        {
            List <Team> teamList = new List <Team>();

            bool isAll     = teamGroup == TeamGroup.All,
                 isFrAndEn = teamGroup == TeamGroup.FriendliesAndEnemies,
                 isFrAndNe = teamGroup == TeamGroup.FriendliesAndNeutrals,
                 isNeAndEn = teamGroup == TeamGroup.NeutralsAndEnemies;

            if (isAll || teamGroup == TeamGroup.Friendlies || isFrAndEn || isFrAndNe)
            {
                teamList.Add(Team.Friendly);
            }
            if (isAll || teamGroup == TeamGroup.Neutrals || isFrAndNe || isNeAndEn)
            {
                teamList.Add(Team.Neutral);
            }
            if (isAll || teamGroup == TeamGroup.Enemies || isFrAndEn || isNeAndEn)
            {
                teamList.Add(Team.Enemy);
            }

            return(teamList);
        }
Esempio n. 20
0
    public void PlayerDied(int actor)
    {
        TeamGroup team = GetComponent <Team>().team;

        // Notification
        if (actor != -1)
        {
            NotificationType notifType = NotificationType.Good;

            FaceoffPlayerManager pManager = FindObjectOfType <FaceoffPlayerManager>();
            // If my client is the dead player
            if (photonView.IsMine)
            {
                notifType = NotificationType.Bad;
            }
            // Or if the dead player has a teammate who is my client
            else
            {
                IEnumerable <GameObject> teamMates = pManager.GetTeammates(gameObject, team);
                foreach (var mate in teamMates)
                {
                    if (mate.GetPhotonView().IsMine)
                    {
                        notifType = NotificationType.Bad;
                        break;
                    }
                }
            }

            NotificationSystem.Instance.Notify(new Notification($"Player {actor} killed Player {photonView.ControllerActorNr}", notifType));
        }

        if (photonView.IsMine)
        {
            Instantiate(deathUI);
        }


        // Hit all death events
        try
        {
            OnPlayerDeath?.Invoke(gameObject, team);
        }
        catch (Exception)
        {
            Debug.Log("Exception");
        }



        if (photonView.IsMine)
        {
            // GetComponent<PlayerMotor>().normalCam = deathCam;
            GetComponent <PlayerMotor>().speed          = 0;
            GetComponent <PlayerMotor>().speedModifier  = 0;
            GetComponent <PlayerMotor>().sprintModifier = 0;
            GetComponent <PlayerMotor>().jumpForce      = 0;

            UI.SetActive(false);

            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
        }

        if (photonView.IsMine)
        {
            PhotonNetwork.Destroy(this.gameObject);
        }
    }
Esempio n. 21
0
    public static TeamGroup Parseout(string fullstring)
    {
        TeamGroup tg = Parse(fullstring);

        return(tg);
    }
Esempio n. 22
0
 private void Clear()
 {
     TeamGroup?.Clear();
 }
Esempio n. 23
0
        private async void Get()
        {
            var jData = await DataService.Get("Cluster");

            if (jData == "ConnectionError")
            {
                StandardMessagesDisplay.NoConnectionToast();
            }
            else if (jData == "null")
            {
                StandardMessagesDisplay.NoDataDisplayMessage();
            }
            else if (jData == "Error")
            {
                StandardMessagesDisplay.Error();
            }
            else if (jData == "ErrorTracked")
            {
                StandardMessagesDisplay.ErrorTracked();
            }
            else
            {
                try
                {
                    var data = JsonConvert.DeserializeObject <Dictionary <string, ClusterModel> >(jData);

                    if (data != null)
                    {
                        foreach (KeyValuePair <string, ClusterModel> item in data)
                        {
                            var nestedJData = await DataService.Get($"Team/{item.Value.Id}");

                            if (nestedJData == "ConnectionError")
                            {
                                StandardMessagesDisplay.NoConnectionToast();
                            }
                            else if (nestedJData == "null")
                            {
                                StandardMessagesDisplay.NoDataDisplayMessage();
                            }
                            else if (nestedJData == "Error")
                            {
                                StandardMessagesDisplay.Error();
                            }
                            else if (nestedJData == "ErrorTracked")
                            {
                                StandardMessagesDisplay.ErrorTracked();
                            }
                            else
                            {
                                var nestedData      = JsonConvert.DeserializeObject <Dictionary <string, TeamModel> >(nestedJData);
                                List <TeamModel> lp = new List <TeamModel>();

                                if (nestedData != null)
                                {
                                    foreach (KeyValuePair <string, TeamModel> item2 in nestedData)
                                    {
                                        lp.Add(
                                            new TeamModel
                                        {
                                            Id                = item2.Value.Id,
                                            CHWName           = item2.Value.CHWName,
                                            FId               = item2.Value.FId,
                                            SocialMobilizerId = item2.Value.SocialMobilizerId,
                                            TeamNo            = item2.Value.TeamNo
                                        });
                                    }
                                }
                                TeamGroup?.Add(new TeamsGroupedByClusterModel(item.Value.ClusterName, lp));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Crashes.TrackError(ex);
                    StandardMessagesDisplay.InputToast(ex.Message);
                }
            }
        }
 void SetTeam(int newTeam)
 {
     team = (TeamGroup)newTeam;
     FindObjectOfType <FaceoffPlayerManager>().Register(gameObject, GetComponent <Team>().team);
 }
 void Awake()
 {
     team = TeamGroup.TeamNotAssigned;
 }
Esempio n. 26
0
 public static bool Includes(this TeamGroup teamGroup, Team subjectTeam)
 => subjectTeam.IsIncludedIn(teamGroup);
Esempio n. 27
0
 public IEnumerable <GameObject> GetTeammates(GameObject player, TeamGroup team)
 {
     return(playerTeams[(int)team].Where((p => p != player)));
 }