Exemplo n.º 1
0
        public CreateMatch(string matchId)
        {
            InitializeComponent();
            var originMatchInfo = MatchDAL.GetMatchInfoById(matchId);

            thisProject = originMatchInfo;
            SetValueForPage(originMatchInfo);
            this.Text           = "更新选中的比赛";
            this.btnCreate.Text = "更新";
        }
Exemplo n.º 2
0
        public void AddMatch(string player1Name, string player2Name, string score)
        {
            PlayerBO playerbo = new PlayerBO();
            Player   player1  = playerbo.GetPlayerByName(player1Name);
            Player   player2  = playerbo.GetPlayerByName(player2Name);

            Match match = new Match();

            match.Player1 = player1;
            match.Player2 = player2;
            match.Score   = score;

            match.Winner = FindWinner(score, player1, player2);

            MatchDAL.GetInstance().Add(match);
        }
Exemplo n.º 3
0
        private void SetMatchTable()
        {
            var allIdNames = MatchDAL.FindAllIdName();
            var dt         = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("比赛名称");

            foreach (var idName in allIdNames)
            {
                var row = dt.NewRow();
                row["ID"]   = idName.Id;
                row["比赛名称"] = idName.Name;
                dt.Rows.Add(row);
            }

            dataGridViewX1.DataSource         = dt;
            dataGridViewX1.Columns[0].Visible = false;
        }
Exemplo n.º 4
0
 private void btnCreate_Click(object sender, EventArgs e)
 {
     if (!ValidateSetting())
     {
         return;
     }
     if (this.btnCreate.Text == "更新")
     {
         var match = GetMatchInfoFromPage(false);
         MatchDAL.Update(match);
     }
     else
     {
         var match = GetMatchInfoFromPage();
         MatchDAL.Save(match);
     }
     this.DialogResult = DialogResult.OK;
     this.Close();
 }
        private void RecordScore_Load(object sender, EventArgs e)
        {
            // 修改人员的button是否显示
            if (RecordByGroup)
            {
                this.lbAddAthlete.Visible = false;
                this.lbDelete.Visible     = false;
            }

            // 初始化组别选择
            var allGroups = MatchGroupTableDAL.GetAllGroups(MatchId);

            this.cbGroupNames.DataSource = allGroups;

            // 初始化项目
            var projects = new string[] { "男子组", "女子组", "混双", "男双", "女双" };

            this.cbProjectNames.DataSource = projects;

            // 初始化比赛信息
            var matchInfo = MatchDAL.GetMatchInfoById(MatchId);

            MatchInfo = matchInfo;

            // 初始化轮数
            var rounds = new List <int>();

            for (int i = 1; i <= MatchInfo.PreRounds; i++)
            {
                rounds.Add(i);
            }

            this.cbRounds.DataSource = rounds;

            var preFinal = new List <string>()
            {
                "预赛", "决赛"
            };

            this.cbPreFinal.DataSource = preFinal;

            SetTable(IsFinal);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 打印女子团体成绩
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbWomenTeamScoreSummaryTable_Click(object sender, EventArgs e)
        {
            var selectedRow = dataGridViewX1.SelectedRows[0];

            if (selectedRow == null)
            {
                return;
            }
            var matchId   = selectedRow.Cells[0].Value.ToString();
            var matchName = selectedRow.Cells[1].Value.ToString();

            var matchInfo = MatchDAL.GetMatchInfoById(matchId);

            // 总合计
            if (matchInfo.ScoringMethod == "总合计")
            {
                // 获取所有分组
                var allGroupNames = AthletesDAL.GetAllGroupNames(matchId);

                // 遍历每组人员,获取所有运动员成绩
                foreach (var groupName in allGroupNames.OrderBy(x => x))
                {
                    var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2);

                    // 分别挑出4人成绩最少杆数个人对team进行排序
                    var sortedTeamShortName = SortTeamShortNameByTeamPersonScore(allPartInGroupMatchScore);

                    // 遍历每个team, 对运动员按照总分数进行排序
                    var sortedAllPartInGroupMatchScore = new List <AthleteSocreModel>();
                    for (var i = 0; i < sortedTeamShortName.Count; i++)
                    {
                        var sortedTeamAthletesScore = allPartInGroupMatchScore
                                                      .Where(x => x.TeamShortName == sortedTeamShortName[i] && x.SumSocre > 0)
                                                      .OrderBy(x => x.SumSocre)
                                                      .ToList();
                        if (sortedTeamAthletesScore.Count >= 4) // 当团体赛人数少于4时,不计入团体赛成绩
                        {
                            sortedAllPartInGroupMatchScore.AddRange(sortedTeamAthletesScore);
                        }
                    }

                    // 导出文件
                    var fileName = $"{matchName}-{groupName}-女子团体成绩-{DateTime.Now.ToString("yyyyMMddHHmmss")}";
                    ExcelHelperPrintTeamScoreSummaryTable.GenerateTeamScoreSummaryPersonalTable(sortedAllPartInGroupMatchScore, matchName, groupName, "女", fileName);
                }
            }
            // 分开合计
            else
            {
                // 获取所有分组
                var allGroupNames = AthletesDAL.GetAllGroupNames(matchId);

                // 遍历每组人员,获取所有运动员成绩
                foreach (var groupName in allGroupNames.OrderBy(x => x))
                {
                    var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2);

                    // 分别挑出4人成绩最少杆数一轮,二轮和对team进行排序
                    var sortedTeamShortName = SortTeamShortNameByTeamScore(allPartInGroupMatchScore);

                    // 遍历每个team, 对运动员按照总分数进行排序
                    var sortedAllPartInGroupMatchScore = new List <AthleteSocreModel>();
                    for (var i = 0; i < sortedTeamShortName.Count; i++)
                    {
                        var sortedTeamAthletesScore = allPartInGroupMatchScore.Where(x => x.TeamShortName == sortedTeamShortName[i] && x.SumSocre > 0).OrderBy(x => x.SumSocre).ToList();
                        if (sortedTeamAthletesScore.Count >= 4) // 当团体赛人数少于4时,不计入团体赛成绩
                        {
                            sortedAllPartInGroupMatchScore.AddRange(sortedTeamAthletesScore);
                        }
                    }

                    // 导出文件
                    var fileName = $"{matchName}-{groupName}-女子团体成绩-{DateTime.Now.ToString("yyyyMMddHHmmss")}";
                    ExcelHelperPrintTeamScoreSummaryTable.GenerateTeamScoreSummaryTable(sortedAllPartInGroupMatchScore, matchName, groupName, "女", fileName);
                }
            }
        }
Exemplo n.º 7
0
 public MatchBL()
 {
     matchDAL = new MatchDAL();
 }
Exemplo n.º 8
0
 public List <Match> GetAllMatches()
 {
     return(MatchDAL.GetInstance().GetAllMatches());
 }