コード例 #1
0
        public ActionResult EclecticPlayerRnds(int compID, int compPlayerID, int courseID)
        {
            PointsScore pScore          = new PointsScore();
            var         eclecPlayerRnds = (from cs in db.CompScores
                                           join cp in db.CompPlayers on cs.CompPlayerID equals cp.CompPlayerID
                                           join ur in db.Users on cp.UserID equals ur.UserID
                                           join pr in db.Profiles on ur.UserID equals pr.UserID
                                           where cp.CompID == compID && cs.CompPlayerID == compPlayerID && cs.CourseID == courseID
                                           orderby cs.RndDate
                                           select new NetScoreView
            {
                RndDate = cs.RndDate,
                HCap = cs.PlayerHcap,
                TeeColour = cs.TeeColour,
                CompScoreID = cs.CompScoreID
            }).ToList();

            // Loop through each Round to calculate and store Net score Par Score and Total Score
            foreach (var item in eclecPlayerRnds)
            {
                int compScoreID = item.CompScoreID;
                var compScores  = from cs in db.CompScores
                                  where cs.CompScoreID == compScoreID
                                  select cs;

                foreach (var gScore in compScores)
                {
                    item.Hole1  = pScore.NetScore(courseID, 1, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole1);
                    item.Hole2  = pScore.NetScore(courseID, 2, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole2);
                    item.Hole3  = pScore.NetScore(courseID, 3, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole3);
                    item.Hole4  = pScore.NetScore(courseID, 4, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole4);
                    item.Hole5  = pScore.NetScore(courseID, 5, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole5);
                    item.Hole6  = pScore.NetScore(courseID, 6, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole6);
                    item.Hole7  = pScore.NetScore(courseID, 7, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole7);
                    item.Hole8  = pScore.NetScore(courseID, 8, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole8);
                    item.Hole9  = pScore.NetScore(courseID, 9, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole9);
                    item.Hole10 = pScore.NetScore(courseID, 10, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole10);
                    item.Hole11 = pScore.NetScore(courseID, 11, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole11);
                    item.Hole12 = pScore.NetScore(courseID, 12, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole12);
                    item.Hole13 = pScore.NetScore(courseID, 13, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole13);
                    item.Hole14 = pScore.NetScore(courseID, 14, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole14);
                    item.Hole15 = pScore.NetScore(courseID, 15, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole15);
                    item.Hole16 = pScore.NetScore(courseID, 16, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole16);
                    item.Hole17 = pScore.NetScore(courseID, 17, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole17);
                    item.Hole18 = pScore.NetScore(courseID, 18, Convert.ToInt32(item.HCap), item.TeeColour, gScore.Hole18);
                }

                item.TotalScore = item.Hole1 + item.Hole2 + item.Hole3 + item.Hole4 + item.Hole5 + item.Hole6 + item.Hole7 + item.Hole8 + item.Hole9 +
                                  item.Hole10 + item.Hole11 + item.Hole12 + item.Hole13 + item.Hole14 + item.Hole15 + item.Hole16 + item.Hole17 + item.Hole18;

                // Get Par Score
                int parScore = item.TotalScore - cInfo.GetCoursePar(courseID, "Yellow");
                if (parScore == 0)
                {
                    item.ParScore = "E";
                }
                else if (parScore > 0)
                {
                    item.ParScore = "+" + parScore.ToString();
                }
                else
                {
                    item.ParScore = parScore.ToString();
                }
            }

            // CourseID & CompID
            ViewBag.CourseID = courseID;
            ViewBag.CompID   = compID;

            // Course Name
            ViewBag.Course = cInfo.GetCourseName(courseID);

            // Player Name
            ViewBag.PlayerName = pStats.GetPlayerName(compPlayerID);

            // Photo
            ViewBag.Photo = pStats.GetPlayerPhoto(compPlayerID);

            // Current Handicap
            ViewBag.CurrentHcap = pStats.CurrentHcap(compPlayerID);

            // Get list of hole Pars for this course
            List <int> parList = new List <int>();

            for (int i = 1; i < 19; i++)
            {
                parList.Add(cInfo.GetHolePar(i, courseID, "Yellow"));
            }
            ViewBag.ParList = parList;

            return(View(eclecPlayerRnds));
        }