/// <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()); } } }
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); }
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; } }
/// <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); }
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; } } } }