示例#1
0
        public void deleteScore(Models.Scorecard scorecard)
        {
            ScoreRepository repo = new ScoreRepository();

            repo.HardDelete(scorecard.ID);
            repo.Save();
            SendTeamScoreUpdate(scorecard.TeamID);
            SendLeaderboardUpdate();
        }
示例#2
0
        private Models.ScorecardViewModel getTeamScore(int teamID)
        {
            ScoreRepository         scoreRepo          = new ScoreRepository();
            IEnumerable <Score>     teamScores         = scoreRepo.GetAll().Where(x => x.TeamID == teamID).OrderBy(x => x.HoleID);
            HoleRepository          holeRepo           = new HoleRepository();
            ClosestToPinRepository  closestRepo        = new ClosestToPinRepository();
            IEnumerable <Hole>      holeList           = holeRepo.GetAll();
            List <Models.Scorecard> scoresWithHoleInfo = new List <Models.Scorecard>();
            int counter = 0;

            foreach (var hole in holeList.Where(x => x.SegmentID == 1 || x.SegmentID == 2))
            {
                int holeNumber = counter < 9 ? hole.Number : 9 + hole.Number;
                counter++;
                Models.Scorecard sc = new Models.Scorecard();
                sc.HoleID          = hole.ID;
                sc.HoleNumber      = holeNumber;
                sc.ParValue        = hole.Par;
                sc.ParValueDisplay = String.Format("Par {0}", hole.Par);
                sc.TeamID          = teamID;
                Score score = teamScores.Where(x => x.HoleID == hole.ID).SingleOrDefault();
                if (score != null)
                {
                    sc.Value        = score.Value;
                    sc.ID           = score.ID;
                    sc.DateInserted = score.DateInserted;
                    sc.DateUpdated  = score.DateUpdated;
                }
                if (hole.Par == 3)
                {
                    ClosestToPin closest = closestRepo.GetAll().OrderBy(d => d.Distance).Where(h => h.HoleID == hole.ID).FirstOrDefault();

                    if (closest != null)
                    {
                        sc.Closest.ClosestName     = closest.Name;
                        sc.Closest.ClosestDistance = closest.Distance;
                    }
                }

                scoresWithHoleInfo.Add(sc);
            }
            Models.ScorecardViewModel vm = new Models.ScorecardViewModel()
            {
                scores = scoresWithHoleInfo
            };
            return(vm);
        }
示例#3
0
        public void saveScore(Models.Scorecard scorecard)
        {
            ScoreRepository repo  = new ScoreRepository();
            Score           score = new Score()
            {
                HoleID       = scorecard.HoleID,
                Value        = scorecard.Value,
                TeamID       = scorecard.TeamID,
                DateUpdated  = DateTime.Now,
                DateInserted = scorecard.ID == 0 ? DateTime.Now : scorecard.DateInserted,
                ID           = scorecard.ID
            };

            repo.InsertOrUpdate(score);
            repo.Save();
            SendTeamScoreUpdate(score.TeamID);
            SendLeaderboardUpdate();
        }