예제 #1
0
        /// <summary>
        /// Orders a list of teams by a given variable then returns the resulting list.
        /// </summary>
        /// <param name="order">The order to sort by.</param>
        /// <param name="variable">The variable to sort by.</param>
        /// <param name="teams">The list of teams.</param>
        public static List <Team> OrderTeams(OrderBy order, TeamOrderVar variable, List <Team> teams)
        {
            switch (variable)
            {
            default:
            {
                int maxLength = teams.Max(o => o.Name.Length);
                if (order == OrderBy.Ascending)
                {
                    return(teams.OrderBy(o => o.Name.PadLeft(maxLength, '0')).ToList());
                }
                else
                {
                    return(teams.OrderByDescending(o => o.Name.PadLeft(maxLength, '0')).ToList());
                }
            }

            case TeamOrderVar.Wins:
                if (order == OrderBy.Ascending)
                {
                    return(teams.OrderBy(o => o.Wins).ToList());
                }
                else
                {
                    return(teams.OrderByDescending(o => o.Wins).ToList());
                }

            case TeamOrderVar.Ties:
                if (order == OrderBy.Ascending)
                {
                    return(teams.OrderBy(o => o.Ties).ToList());
                }
                else
                {
                    return(teams.OrderByDescending(o => o.Ties).ToList());
                }

            case TeamOrderVar.Losses:
                if (order == OrderBy.Ascending)
                {
                    return(teams.OrderBy(o => o.Losses).ToList());
                }
                else
                {
                    return(teams.OrderByDescending(o => o.Losses).ToList());
                }

            case TeamOrderVar.TotalScore:
                if (order == OrderBy.Ascending)
                {
                    return(teams.OrderBy(o => o.TotalScore).ToList());
                }
                else
                {
                    return(teams.OrderByDescending(o => o.TotalScore).ToList());
                }
            }
        }
예제 #2
0
        private void RedirectWithParameters(TeamOrderVar teamOrderVar)
        {
            NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());

            if (teamOrder == teamOrderVar && order != OrderBy.Descending) //If team order is already by name, then we flip them.
            {
                queryValues.Set("OrderTeams", ((int)teamOrderVar).ToString());
                queryValues.Set("Order", ((int)OrderBy.Descending).ToString());
            }
            else
            {
                queryValues.Set("OrderTeams", ((int)teamOrderVar).ToString());
                queryValues.Set("Order", ((int)OrderBy.Ascending).ToString());
            }

            string url = Request.Url.AbsolutePath;

            Response.Redirect(url + "?" + queryValues);
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int currentDebateID = Help.GetDebateSeasonID(Application);

            if (currentDebateID != -1)
            {
                //Gathering query values
                NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
                string orderString     = queryValues.Get("Order");
                string teamOrderString = queryValues.Get("OrderTeams");

                if (orderString != null)
                {
                    order = (OrderBy)(int.Parse(orderString));
                }
                if (teamOrderString != null)
                {
                    teamOrder = (TeamOrderVar)(int.Parse(teamOrderString));
                }

                teams = DatabaseHandler.GetDebateSeasonTeams(currentDebateID);
                teams = Help.RankTeams(teams);

                teams = Help.OrderTeams(order, teamOrder, teams);

                TableRow header = CreateHeaderRow();
                Table1.Rows.Add(header);

                for (int i = 0; i < teams.Count; i++)
                {
                    TableRow teamRow = Help.CreateTeamRow(teams[i], i, i);
                    Table1.Rows.Add(teamRow);
                }
            }
            else
            {
                Panel_NoDebates.Visible = true;
                Panel2.Visible          = true;
            }
        }
예제 #4
0
        /// <summary>
        /// Refreshes the page with a new order for the table on page load.
        /// </summary>
        /// <param name="teamOrderVar">The variable to order teams by.</param>
        private void RedirectWithParameters(TeamOrderVar teamOrderVar)
        {
            if (this.teamOrderVar == teamOrderVar && teamOrderType != OrderBy.Descending) //If team order is already by name, then we flip them.
            {
                ViewState["tOrderType"] = (int)OrderBy.Descending;
            }
            else
            {
                ViewState["tOrderType"] = (int)OrderBy.Ascending;
            }

            ViewState["teamOrder"] = (int)teamOrderVar;

            dateOrder = int.Parse(DropDownList_Date.SelectedValue);
            teamOrder = int.Parse(DropDownList_TeamName.SelectedValue);

            ViewState["date"]        = dateOrder;
            ViewState["team"]        = teamOrder;
            ViewState["dOrderType"]  = (int)debateOrderType;
            ViewState["debateOrder"] = (int)debateOrderVar;

            Help.ForcePostBack(this);
        }
예제 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int currentDebateID = Help.GetDebateSeasonID(Application);

            if (currentDebateID != -1)
            {
                minimumSeasonIndex = 2;
            }


            //Gathering query values
            NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
            string pageString = queryValues.Get("page");

            if (pageString != null)
            {
                bool result = int.TryParse(pageString, out seasonIndex);
                if (!result) //If we could not parse the string then we reset the index.
                {
                    seasonIndex = minimumSeasonIndex;
                }
            }

            if (seasonIndex <= minimumSeasonIndex)
            {
                seasonIndex = minimumSeasonIndex;
                Button_PreviousSeason.Visible = false;
            }

            Panel_Search.Visible          = true;
            Panel_NoSearch.Visible        = false;
            Button_NextSeason.Enabled     = true;
            Button_PreviousSeason.Enabled = true;

            object teamOrderTypeObj   = ViewState["tOrderType"];  //Team order type
            object debateOrderTypeObj = ViewState["dOrderType"];  //Debate order type
            object teamOrderVarObj    = ViewState["teamOrder"];   //The order of teams
            object debateOrderVarObj  = ViewState["debateOrder"]; //The order of debates.
            object dateOrderObj       = ViewState["date"];
            object teamOrderObj       = ViewState["team"];
            object seasonObj          = ViewState["season"];

            if (debateOrderTypeObj != null)
            {
                debateOrderType = (OrderBy)(int.Parse(debateOrderTypeObj.ToString()));
            }
            if (debateOrderVarObj != null)
            {
                debateOrderVar = (DebateOrderVar)(int.Parse(debateOrderVarObj.ToString()));
            }
            if (teamOrderTypeObj != null)
            {
                teamOrderType = (OrderBy)(int.Parse(teamOrderTypeObj.ToString()));
            }
            if (teamOrderVarObj != null)
            {
                teamOrderVar = (TeamOrderVar)(int.Parse(teamOrderVarObj.ToString()));
            }

            if (seasonObj == null)
            {
                List <DebateSeason> debateSeasons = DatabaseHandler.GetDebateSeasons(seasonIndex, seasonIndex);
                if (debateSeasons.Count > 0)
                {
                    debateSeason = debateSeasons[0];
                }
                else  //No debates were found.. ut oh.
                {
                    Button_NextSeason.Visible = false;
                    Panel_PagePanel.Visible   = false;
                    Label_SeasonTitle.Text    = "No debate seasons here!";
                }
            }
            else
            {
                debateSeason = seasonObj as DebateSeason;
            }

            ViewState["season"] = debateSeason;

            if (debateSeason != null) //We do not display the current ongoing debate season.
            {
                if (debateSeason.ID != currentDebateID)
                {
                    //Setting up the enviroment
                    currentDebateSeason = debateSeason.ID;
                    DateTime startDate = debateSeason.StartDate;
                    DateTime endDate   = debateSeason.StartDate.AddDays(debateSeason.Length * 7);
                    Label_SeasonTitle.Text = "Debate Season that started on " + startDate.ToString("MM/dd/yy") + " and ended on " + endDate.ToString("MM/dd/yy");

                    //Generating the team rankings table
                    teams = debateSeason.Teams;
                    teams = Help.RankTeams(teams);

                    teams = Help.OrderTeams(teamOrderType, teamOrderVar, teams);

                    TableRow header = CreateTeamHeaderRow();
                    Table_Rankings.Rows.Add(header);

                    for (int i = 0; i < teams.Count; i++)
                    {
                        TableRow teamRow = Help.CreateTeamRow(teams[i], i, i);
                        Table_Rankings.Rows.Add(teamRow);
                    }

                    //Generating the search options and debate table...
                    if (dateOrderObj != null)
                    {
                        int  val;
                        bool result = int.TryParse(dateOrderObj.ToString(), out val);
                        if (result && val > 0 && val <= debateSeason.Length)
                        {
                            dateOrder = val;
                        }
                    }
                    if (teamOrderObj != null)
                    {
                        int  val;
                        bool result = int.TryParse(teamOrderObj.ToString(), out val);
                        if (result && val > 0 && val <= debateSeason.Teams.Count)
                        {
                            teamOrder = val;
                        }
                    }

                    debates = debateSeason.Debates;

                    debates = Help.OrderDebates(debateOrderType, debateOrderVar, debates);

                    TableRow debateHeader = CreateDebateHeaderRow();
                    TableData.Rows.Add(debateHeader);

                    seasonStart  = debateSeason.StartDate;
                    seasonLength = debateSeason.Length;

                    DateTime currentDate = seasonStart;

                    teams = debateSeason.Teams;

                    if (!IsPostBack) //We do not do this on page post backs (IE: After searches).
                    {
                        //Creating the team drop down
                        for (int i = 0; i < teams.Count; i++)
                        {
                            string   val      = (i + 1).ToString();
                            ListItem teamItem = new ListItem(teams[i].Name, val);
                            DropDownList_TeamName.Items.Add(teamItem);
                        }

                        //Creating the date drop down
                        for (int i = 1; i <= seasonLength; i++)
                        {
                            string   val      = i.ToString();
                            ListItem dateItem = new ListItem(currentDate.ToString("MM/dd/yy"), val);
                            DropDownList_Date.Items.Add(dateItem);
                            currentDate = currentDate.AddDays(7);
                        }
                    }

                    int addedRows = 0;
                    //Adding the debates to the table
                    if ((teamOrder > 0 || dateOrder > 0))
                    {
                        if (teamOrder > 0)
                        {
                            searchName = teams[(teamOrder - 1)].Name;
                            if (!IsPostBack)
                            {
                                DropDownList_TeamName.Items.FindByValue((teamOrder.ToString())).Selected = true;
                            }
                        }
                        if (dateOrder > 0)
                        {
                            searchDate = seasonStart.AddDays((dateOrder - 1) * 7);
                            if (!IsPostBack)
                            {
                                DropDownList_Date.Items.FindByValue((dateOrder.ToString())).Selected = true;
                            }
                        }

                        foreach (Debate d in debates)
                        {
                            if (dateOrder == 0 || (d.Date.Month == searchDate.Month &&
                                                   d.Date.Day == searchDate.Day &&
                                                   d.Date.Year == searchDate.Year))
                            {
                                if (teamOrder == 0 || (d.Team1.Name == searchName ||
                                                       d.Team2.Name == searchName))
                                {
                                    TableRow debateRow = Help.CreateDebateRow(d, includeVs, addedRows);
                                    TableData.Rows.Add(debateRow);
                                    addedRows++;
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (Debate d in debates)
                        {
                            TableRow debateRow = Help.CreateDebateRow(d, includeVs, addedRows);
                            TableData.Rows.Add(debateRow);
                            addedRows++;
                        }
                    }
                    if (addedRows <= 0)
                    {
                        TableData.Visible      = false;
                        Panel_NoSearch.Visible = true;
                        Label_NoSearch.Text    = "No results match your search.";
                    }
                    else
                    {
                        TableData.Visible      = true;
                        Panel_NoSearch.Visible = false;
                    }
                }
            }
        }