示例#1
0
        public ActionResult CreateMatches(string DeleteIT)
        {
            var numOfWeeks = db.WednesdaySchedules.Count();
            var numofTeams = db.WednesdayTeams.Count();

            db.WednesdayMatches.RemoveRange(db.WednesdayMatches);
            db.SaveChanges();
            var cs = new CreateSchedule();

            var matches = numofTeams % 2 == 0 ? cs.NoByes(numOfWeeks, numofTeams) : cs.Byes(numOfWeeks, numofTeams);

            foreach (var match in matches)
            {
                db.WednesdayMatches.Add(new WednesdayMatch()
                {
                    id         = 0,
                    GameDate   = match.Week + 1,
                    Rink       = match.Rink == -1 ? -1 : match.Rink + 1,
                    Team1      = match.Team1 + 1,
                    Team2      = match.Team2 + 1,
                    Team1Score = 0,
                    Team2Score = 0
                });
            }
            try
            {
                db.SaveChanges();
            }
            catch (Exception e)
            {
                ErrorSignal.FromCurrentContext().Raise(e);
            }

            return(RedirectToAction("index", new { ScheduleID = 1 }));
        }
示例#2
0
        public ActionResult CreateMatches()
        {
            var leaguename = "";
            var cookie     = Request.Cookies["leaguename"];

            if (cookie != null)
            {
                leaguename = cookie.Value;
            }
            ViewBag.LeagueName = leaguename;


            var leagueid = 0;

            cookie = Request.Cookies["leagueid"];
            if (cookie != null)
            {
                int.TryParse(cookie.Value, out leagueid);
            }


            var numOfWeeks = _db.Schedules.Count(x => x.Leagueid == leagueid);
            var numofTeams = _db.Teams.Count(x => x.Leagueid == leagueid);


            var missing = Missing(leagueid);
            //if (missing.Count > 0)
            //{
            //    ViewBag.Error = "Some players not assigned to a team";
            //    return View(missing);
            //}

            var complete = Complete(leagueid);

            if (!complete)
            {
                ViewBag.Error = "Not all teams are complete";
                return(View(missing));
            }

            var matches = _db.Matches.Where(x => x.Team.Leagueid == leagueid).ToList();

            foreach (var match in matches)
            {
                if (match.Team1Score != 0 || match.Team2Score != 0 || match.ForFeitId != 0)
                {
                    ViewBag.Error = "Matches cannot be delete, some matches have scores";
                    return(View(missing));
                }
            }

            _db.Matches.RemoveRange(matches);

            var cs = new CreateSchedule();

            var newMatches = numofTeams % 2 == 0 ? cs.NoByes(numOfWeeks, numofTeams) : cs.Byes(numOfWeeks, numofTeams);

            var scheduleList = _db.Schedules.Where(x => x.Leagueid == leagueid).ToList();
            var lookup       = new Dictionary <int, DateTime>();
            int i            = 1;

            foreach (var item in scheduleList)
            {
                lookup[i++] = item.GameDate;
            }
            var teamList = _db.Teams.Where(x => x.Leagueid == leagueid).ToList();

            foreach (var match in newMatches)
            {
                var team1 = teamList.Find(x => x.TeamNo == match.Team1 + 1);
                var team2 = teamList.Find(x => x.TeamNo == match.Team2 + 1);
                var date  = lookup[match.Week + 1];
                var round = scheduleList.Find(x => x.GameDate == date);
                _db.Matches.Add(new Match()
                {
                    id         = 0,
                    WeekId     = round.id,
                    Rink       = match.Rink == -1 ? -1 : match.Rink + 1,
                    TeamNo1    = team1.id,
                    TeamNo2    = match.Rink == -1? (int?)null : team2.id,
                    Team1Score = 0,
                    Team2Score = 0,
                    ForFeitId  = 0
                });
            }
            try
            {
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                ErrorSignal.FromCurrentContext().Raise(e);
                ViewBag.Error = $"No matches were created, Error {e.Message}";
                return(View(new List <Player>()));
            }
            var rounds = _db.Schedules.Where(x => x.Leagueid == leagueid);

            if (!rounds.Any())
            {
                ViewBag.Error = "No matches created becuse no weeks have been scheduled";
                return(View(missing));
            }
            return(RedirectToAction("index", new { weekid = rounds.First().id, id = leagueid }));
        }