Exemplo n.º 1
0
        protected void btnGenerateMatches_Click(object sender, EventArgs e)
        {
            using (var db = Global.GetConnection())
            {
                //delete any matches fropm before, if any have been updated. Skip this action
                var checkUpdatedMatches = from m in db.Inti_Match
                                          where m.TournamentGUID == TourId
                                          select m;

                if (checkUpdatedMatches.ToList().Count > 0)
                {
                    lblMatchEditMessage.Text =
                        "Det finns redan matcher i denna tävlingen. Du får editera matcherna manuellt.";

                    return;
                }


                //delete all matches in this tournament
                //var matchesToDelete = db.Inti_Match.Where(m => m.TournamentGUID == TourId);

                //foreach(var match in matchesToDelete.ToList())
                //{
                //    db.Inti_Match.DeleteOnSubmit(match);
                //}

                //db.SubmitChanges();

                //loop the clubs of the tournament
                var clubs = db.Inti_Club.Where(c => c.TournamentGUID == TourId);

                var clubs1 = clubs.ToList();
                var clubs2 = clubs.ToList();

                foreach (var homeClub in clubs1)
                {
                    foreach (var awayClub in clubs2)
                    {
                        if (homeClub.GUID != awayClub.GUID)
                        {
                            var match = new Inti_Match();

                            match.TournamentGUID = TourId;
                            match.HomeClub       = homeClub.GUID;
                            match.AwayClub       = awayClub.GUID;
                            match.MatchDate      = DateTime.Parse(EndRegistration.Text);
                            match.TourDay        = 1;
                            match.IsUpdated      = false;

                            db.Inti_Match.InsertOnSubmit(match);
                        }
                    }
                }

                db.SubmitChanges();
            }
        }
Exemplo n.º 2
0
        public void LoadPreMatchEvaluation(Inti_Match match, IntiDataContext db)
        {
            //get a list of athletes represented in teams, sorted by total scores
            var highestScoringHomeAthletes = GetAthletesForClub(match.HomeClub, db);
            var highestScoringAwayAthletes = GetAthletesForClub(match.AwayClub, db);

            LoadStakeholders(highestScoringHomeAthletes.Union(highestScoringAwayAthletes).ToList(), db);

            lblHeader.Text = "Lag med intressen";
        }
Exemplo n.º 3
0
            public MatchDTO(Inti_Match match)
            {
                GUID       = match.GUID;
                MatchLabel = match.HomeClubInti_Club.ShortName + " - " + match.Inti_Club.ShortName;

                if (match.IsUpdated ?? false)
                {
                    MatchLabel += " (" + match.HomeScore + "-" + match.AwayScore + ")";
                }

                if (match.MatchDate.HasValue)
                {
                    MatchLabel += " " + match.MatchDate.Value.ToShortDateString();
                }
            }
Exemplo n.º 4
0
        protected void btnAddMatch_Click(object sender, EventArgs e)
        {
            using (var db = Global.GetConnection())
            {
                var match = new Inti_Match();

                match.HomeClub       = new Guid(drpAddMatchHomeTeam.SelectedValue);
                match.AwayClub       = new Guid(drpAddMatchAwayTeam.SelectedValue);
                match.TournamentGUID = TourId;
                match.MatchDate      = DateTime.Parse(txtAddMatchMatchDate.Text);
                match.TourDay        = int.Parse(drpAddMatchTourDay.SelectedValue);
                match.IsUpdated      = false;

                db.Inti_Match.InsertOnSubmit(match);

                db.SubmitChanges();
            }

            LoadMatches();
        }
Exemplo n.º 5
0
        private void AddMatchPointEvent(IntiDataContext db, Inti_Match match, Inti_AthleteClub athleteClub, Inti_PointEvent pointEvent, int nmbrOfEvents)
        {
            for (var i = 1; i <= nmbrOfEvents; i++)
            {
                var mpe = new Inti_MatchPointEvent();
                mpe.MatchGUID       = match.GUID;
                mpe.AthleteClubGUID = athleteClub.GUID;
                mpe.PointEventGUID  = pointEvent.GUID;

                mpe.Points =
                    pointEvent.Inti_PointEventPosition.Where(
                        pep => pep.PositionGUID == athleteClub.PositionGUID).ToList()[0].Points;

                if (match.TourDay == 19 || match.TourDay == 38)
                {
                    //dubbla poäng
                    mpe.Points = mpe.Points * 2;
                }

                db.Inti_MatchPointEvent.InsertOnSubmit(mpe);
            }
        }
Exemplo n.º 6
0
        private string GetPointEventText(Inti_Match match)
        {
            var goalScorers     = new List <string>(4);
            var redCarders      = new List <string>(4);
            var ownGoalers      = new List <string>(4);
            var pointEventsText = "<ul>";

            foreach (var matchPointEvent in match.Inti_MatchPointEvent.OrderBy(mpe => mpe.Inti_PointEvent.Name).ThenBy(mpe => mpe.Inti_AthleteClub.AthleteGUID).ThenBy(mpe => mpe.Inti_AthleteClub.Inti_Club.Name).ToList())
            {
                //get athletes name
                var athleteName =
                    String.Format("{0} {1}", matchPointEvent.Inti_AthleteClub.Inti_Athlete.FirstName,
                                  matchPointEvent.Inti_AthleteClub.Inti_Athlete.LastName).Trim();

                pointEventsText += String.Format("<li>{0} ({1}), {2}</li>",
                                                 String.Format("<a href='/Player/{0}'>{1}</a>",
                                                               matchPointEvent.Inti_AthleteClub.GUID, athleteName),
                                                 matchPointEvent.Inti_AthleteClub.Inti_Club.ShortName,
                                                 matchPointEvent.Inti_PointEvent.Name);
                //get info for match summary
                switch (matchPointEvent.Inti_PointEvent.Name.ToLower())
                {
                case "mål":
                case "straffmål":
                    if (!goalScorers.Contains(athleteName))
                    {
                        goalScorers.Add(athleteName);
                    }
                    break;

                case "rött kort":
                    if (!redCarders.Contains(athleteName))
                    {
                        redCarders.Add(athleteName);
                    }
                    break;

                case "självmål":
                    if (!ownGoalers.Contains(athleteName))
                    {
                        ownGoalers.Add(athleteName);
                    }
                    break;
                }
            }

            //while we're at it - set the goal scorers etc in the match summary
            if (goalScorers.Count > 0)
            {
                MatchSummary += ConcatinateAthletes(goalScorers, "Målgörare");
            }
            if (redCarders.Count > 0)
            {
                MatchSummary += ConcatinateAthletes(redCarders, "Utvisade");
            }
            if (ownGoalers.Count > 0)
            {
                MatchSummary += ConcatinateAthletes(ownGoalers, "Självmål");
            }

            pointEventsText += "</ul>";
            return(pointEventsText);
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            //get clubs
            using (var db = Global.GetConnection())
            {
                var clubs = db.Inti_Club.Where(c => c.TournamentGUID == TourId).ToList();

                var day       = int.Parse(drpDay.SelectedValue);
                var matchDate = DateTime.Parse(txtDate.Text);
                var matches   = txtMatches.Text;

                var rejectedEntries = String.Empty;
                var approvedEntries = String.Empty;

                var matchArray = matches.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var match in matchArray)
                {
                    var matchClubs = match.Split(new string[] { "-", " " }, StringSplitOptions.RemoveEmptyEntries);
                    //måste vara ett hemma och ett bortalag
                    if (matchClubs.GetUpperBound(0) != 1)
                    {
                        rejectedEntries += HtmlLineBreak + match + " (fel antal lag)";
                        continue;
                    }

                    var homeTeamShort = matchClubs[0].Trim().ToUpper();
                    var awayTeamShort = matchClubs[1].Trim().ToUpper();

                    if (homeTeamShort == awayTeamShort)
                    {
                        rejectedEntries += HtmlLineBreak + match + " (hemmalag får inte vara samma som bortalag)";
                        continue;
                    }

                    //hemmalag måste finnas
                    var homeClub = clubs.SingleOrDefault(c => c.ShortName == homeTeamShort);
                    if (homeClub == null)
                    {
                        rejectedEntries += HtmlLineBreak + match + " (hittar inte hemmalaget)";
                        continue;
                    }

                    //bortalag måste finnas
                    var awayClub = clubs.SingleOrDefault(c => c.ShortName == awayTeamShort);
                    if (awayClub == null)
                    {
                        rejectedEntries += HtmlLineBreak + match + " (hittar inte bortalaget)";
                        continue;
                    }

                    //finns matchen?
                    var dbMatch =
                        db.Inti_Match.SingleOrDefault(
                            m =>
                            m.TournamentGUID == TourId && m.HomeClub == homeClub.GUID && m.AwayClub == awayClub.GUID);

                    approvedEntries += HtmlLineBreak + match;
                    var isNew = false;
                    if (dbMatch == null)
                    {
                        isNew = true;
                        //create new match
                        dbMatch                = new Inti_Match();
                        dbMatch.HomeClub       = homeClub.GUID;
                        dbMatch.AwayClub       = awayClub.GUID;
                        dbMatch.TournamentGUID = TourId;

                        approvedEntries += " (la till ny match)";
                    }
                    else
                    {
                        approvedEntries += " (ändrade befintlig match)";
                    }

                    dbMatch.TourDay   = day;
                    dbMatch.MatchDate = matchDate;
                    if (isNew)
                    {
                        db.Inti_Match.InsertOnSubmit(dbMatch);
                    }

                    db.SubmitChanges();
                }

                lblOutput.Text = (approvedEntries + HtmlLineBreak + rejectedEntries);
            }
        }
Exemplo n.º 8
0
        private void LoadMatchPointEventsForSelectedDay()
        {
            //visa matcher som ska uppdateras inom det närmaste eller som har uppdaterats
            lblMatchUpdates.Text = "";
            if (SelectedDay != 0)
            {
                using (var db = Global.GetConnection())
                {
                    var matches = from m in db.Inti_Match
                                  where m.TournamentGUID == SessionProperties.SelectedTournament.GUID &&
                                  (m.TourDay == SelectedDay)
                                  select m;

                    var usersQ = from u in db.Sys_User
                                 select u;



                    foreach (var match in matches.OrderBy(m => m.IsUpdated).OrderByDescending(m => m.MatchDate))
                    {
                        //updatername?
                        var updaterName = "";
                        if (match.Updater != null)
                        {
                            Inti_Match intiMatch = match;
                            var        user      = usersQ.Single(u => u.GUID == intiMatch.Updater);
                            updaterName = String.Format("{0} {1}", user.FirstName, user.LastName).Trim();
                        }


                        lblMatchUpdates.Text += String.Format("<a href='\\MatchView.aspx?id={4}'><b>{0} - {1}</b></a><br>({2}, {3})<br><ul>",
                                                              match.HomeClubInti_Club.Name, match.Inti_Club.Name,
                                                              match.MatchDate.HasValue
                                                                  ? match.MatchDate.Value.ToShortDateString()
                                                                  : "-",
                                                              (match.IsUpdated ?? false)
                                                                  ? String.Format("{0} - {1}, Uppdaterad av: {2}", match.HomeScore ?? 0, match.AwayScore ?? 0, updaterName)
                                                                  : "Ej uppdaterad",
                                                              match.GUID);

                        foreach (var matchPointEvent in match.Inti_MatchPointEvent.OrderBy(mpe => mpe.Inti_PointEvent.Name).OrderBy(mpe => mpe.Inti_AthleteClub.AthleteGUID).OrderBy(mpe => mpe.Inti_AthleteClub.Inti_Club.Name).ToList())
                        {
                            var isPointForTeam = (TeamGUID != Guid.Empty &&
                                                  matchPointEvent.Inti_TeamPointEvents.Where(
                                                      tpe => tpe.TeamGUID == TeamGUID).ToList().Count > 0);


                            lblMatchUpdates.Text += String.Format("<li {0}>{1} ({2}), {3}</li>",
                                                                  isPointForTeam ? String.Format("class=\"highlight\"") : "",
                                                                  String.Format("<a href='\\PlayerView.aspx?acGUID={2}'>{0} {1}</a>",
                                                                                matchPointEvent.Inti_AthleteClub.
                                                                                Inti_Athlete.FirstName,
                                                                                matchPointEvent.Inti_AthleteClub.
                                                                                Inti_Athlete.LastName, matchPointEvent.Inti_AthleteClub.GUID).Trim(),
                                                                  matchPointEvent.Inti_AthleteClub.Inti_Club.ShortName,
                                                                  matchPointEvent.Inti_PointEvent.Name);
                        }
                        lblMatchUpdates.Text += "</ul><br>";
                    }
                }
            }
        }