예제 #1
0
        /// <summary>
        /// Refreshes the page with a new order for the table on page load.
        /// </summary>
        /// <param name="debateOrderVar">The variable to order debates by.</param>
        private void RedirectWithParameters(DebateOrderVar debateOrderVar)
        {
            if (this.debateOrderVar == debateOrderVar && debateOrderType != OrderBy.Descending) //If team order is already by name, then we flip them.
            {
                ViewState["dOrderType"] = (int)OrderBy.Descending;
            }
            else
            {
                ViewState["dOrderType"] = (int)OrderBy.Ascending;
            }

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

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

            ViewState["date"]         = dateOrder;
            ViewState["team"]         = teamOrder;
            ViewState["seasonID"]     = seasonIndex;
            ViewState["tOrderType"]   = (int)debateOrderType;
            ViewState["debateOrder"]  = (int)debateOrderVar;
            ViewState["prevSeasonID"] = seasonIndex;

            Help.ForcePostBack(this);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            ((MasterPage)Master).SetPagePermissionLevel(2);
            User loggedUser = Help.GetUserSession(Session);
            //Gathering query values
            NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
            string orderString       = queryValues.Get("Order");
            string debateOrderString = queryValues.Get("dOrder");

            if (orderString != null)
            {
                order = (OrderBy)(int.Parse(orderString));
            }
            if (debateOrderString != null)
            {
                dOrder = (DebateOrderVar)(int.Parse(debateOrderString));
            }

            int currentDebateID = Help.GetDebateSeasonID(Application);

            debates = DatabaseHandler.GetDebateSeasonDebates(currentDebateID);

            debates = Help.OrderDebates(order, dOrder, debates);

            TableRow header = CreateHeaderRow();

            Table1.Rows.Add(header);

            int rowNum = 1; // row 0 will be the header row.

            foreach (Debate d in debates)
            {
                if (loggedUser.PermissionLevel == 2)
                {
                    if (d.Team1Score == -1 && d.Team2Score == -1)
                    {
                        TableRow debateRow = CreateDebateRow(d, rowNum);
                        Table1.Rows.Add(debateRow);
                        rowNum++;
                    }
                }
                else if (loggedUser.PermissionLevel == 3)
                {
                    TableRow debateRow = CreateDebateRow(d, rowNum);
                    Table1.Rows.Add(debateRow);
                    rowNum++;
                }
            }
        }
        private void RedirectWithParameters(DebateOrderVar debateOrderVar)
        {
            NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());

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

            string url = Request.Url.AbsolutePath;

            Response.Redirect(url + "?" + queryValues);
        }
예제 #4
0
        /// <summary>
        /// Refreshes the page with a new order for the table on page load.
        /// </summary>
        /// <param name="debateOrderVar"></param>
        private void RedirectWithParameters(DebateOrderVar debateOrderVar)
        {
            if (dOrder == debateOrderVar && order != OrderBy.Descending) //If team order is already by name, then we flip them.
            {
                ViewState["Order"] = (int)OrderBy.Descending;
            }
            else
            {
                ViewState["Order"] = (int)OrderBy.Ascending;
            }

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

            ViewState["dOrder"] = (int)debateOrderVar;
            ViewState["date"]   = dateOrder;
            ViewState["team"]   = teamOrder;

            Help.ForcePostBack(this);
        }
        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 debateOrderString = queryValues.Get("dOrder");

                if (orderString != null)
                {
                    order = (OrderBy)(int.Parse(orderString));
                }
                if (debateOrderString != null)
                {
                    dOrder = (DebateOrderVar)(int.Parse(debateOrderString));
                }


                debates = DatabaseHandler.GetDebateSeasonDebates(currentDebateID);

                debates = Help.OrderDebates(order, dOrder, debates);

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

                foreach (Debate d in debates)
                {
                    TableRow debateRow = CreateDebateRow(d);
                    Table1.Rows.Add(debateRow);
                }
            }
            else
            {
                Panel_NoDebate.Visible = true;
            }
        }
예제 #6
0
        /// <summary>
        /// Orders a list of debates by a given variable in a given order and returns the resulting list.
        /// </summary>
        /// <param name="order">The order of the returning list.</param>
        /// <param name="variable">The variable to order by.</param>
        /// <param name="debates">The list of debates being ordered.</param>
        /// <returns>Returns a list of debates properly ordered by the given variables.</returns>
        public static List <Debate> OrderDebates(OrderBy order, DebateOrderVar variable, List <Debate> debates)
        {
            switch (variable)
            {
            default:
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.Date).ToList());
                }
                else
                {
                    return(debates.OrderByDescending(o => o.Date).ToList());
                }

            case DebateOrderVar.Team1Name:
            {
                int maxLength = debates.Max(o => o.Team1.Name.Length);
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.Team1.Name.PadLeft(maxLength, '0')).ToList());        //Not the most effecient way of sorting, but whatever it works.
                }
                else
                {
                    return(debates.OrderByDescending(o => o.Team1.Name.PadLeft(maxLength, '0')).ToList());        //Not the most effecient way of sorting, but whatever it works.
                }
            }

            case DebateOrderVar.Team2Name:
            {
                int maxLength = debates.Max(o => o.Team2.Name.Length);
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.Team2.Name.PadLeft(maxLength, '0')).ToList());        //Not the most effecient way of sorting, but whatever it works.
                }
                else
                {
                    return(debates.OrderByDescending(o => o.Team2.Name.PadLeft(maxLength, '0')).ToList());        //Not the most effecient way of sorting, but whatever it works.
                }
            }

            case DebateOrderVar.Team1Score:
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.Team1Score).ToList());
                }
                else
                {
                    return(debates.OrderByDescending(o => o.Team1Score).ToList());
                }

            case DebateOrderVar.Team2Score:
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.Team2Score).ToList());
                }
                else
                {
                    return(debates.OrderByDescending(o => o.Team2Score).ToList());
                }

            case DebateOrderVar.MorningDebate:
                if (order == OrderBy.Ascending)
                {
                    return(debates.OrderBy(o => o.MorningDebate).ToList());
                }
                else
                {
                    return(debates.OrderByDescending(o => o.MorningDebate).ToList());
                }
            }
        }
예제 #7
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;
                    }
                }
            }
        }
예제 #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ((MasterPage)Master).SetPagePermissionLevel(2);
            User loggedUser = Help.GetUserSession(Session);

            if (loggedUser != null)
            {
                //Gathering query values
                NameValueCollection queryValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
                string orderString       = queryValues.Get("Order");
                string debateOrderString = queryValues.Get("dOrder");

                if (orderString != null)
                {
                    order = (OrderBy)(int.Parse(orderString));
                }
                if (debateOrderString != null)
                {
                    dOrder = (DebateOrderVar)(int.Parse(debateOrderString));
                }

                debateSeasonID = Help.GetDebateSeasonID(Application);

                if (debateSeasonID == -1) //There is no debate season going on.
                {
                    Panel_Info.Visible         = true;
                    Label_Info.Text            = "There is currently no ongoing debate season to score.";
                    Panel1.Visible             = false;
                    Panel_UpdateScores.Visible = false;
                    return; //We end the method here if there is no debate season/
                }
                debates = DatabaseHandler.GetDebateSeasonDebates(debateSeasonID);

                seasonStartDate = DatabaseHandler.GetDebateSeasonDateTime(debateSeasonID, out seasonLength);

                debates = Help.OrderDebates(order, dOrder, debates);

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

                int rowNum = 1; // row 0 will be the header row.
                foreach (Debate d in debates)
                {
                    if (loggedUser.PermissionLevel == 2)
                    {
                        if (d.Team1Score == -1 && d.Team2Score == -1)
                        {
                            TableRow debateRow = CreateDebateRow(d, rowNum, loggedUser);
                            Table1.Rows.Add(debateRow);
                            rowNum++;
                        }
                    }
                    else if (loggedUser.PermissionLevel == 3)
                    {
                        TableRow debateRow = CreateDebateRow(d, rowNum, loggedUser);
                        Table1.Rows.Add(debateRow);
                        rowNum++;
                    }
                }

                if (Table1.Rows.Count == 1 && loggedUser.PermissionLevel < 3) //Only the header exists in the table. IE: There are no more debates to score.
                {
                    Panel_Info.Visible         = true;
                    Label_Info.Text            = "All debates have been scored, the season must now be ended by a " + Help.GetPermissionName(3);
                    Panel1.Visible             = false;
                    Panel_UpdateScores.Visible = false;
                }

                //Creating the end debate season button.
                if (loggedUser.PermissionLevel >= 3 && DatabaseHandler.DebateSeasonScored(debateSeasonID))
                {
                    //The entire debate season has been scored, so let's add the option to end it.
                    Button endSeasonBut = new Button();
                    endSeasonBut.Width    = UpdateButton.Width;
                    endSeasonBut.Height   = 20;
                    endSeasonBut.Text     = "End Debate Season";
                    endSeasonBut.Command += EndSeasonBut_Command;
                    Panel_UpdateScores.Controls.AddAt(Panel_UpdateScores.Controls.Count - 1, new LiteralControl("<br /> <br /> <br />"));
                    Panel_UpdateScores.Controls.AddAt(Panel_UpdateScores.Controls.Count - 1, endSeasonBut);
                    Panel_UpdateScores.Controls.AddAt(Panel_UpdateScores.Controls.Count - 1, new LiteralControl("<br />"));
                }
            }
        }
예제 #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int currentDebateID = Help.GetDebateSeasonID(Application);

            Panel_Searching.Visible = true;
            Panel_NoDebate.Visible  = false;

            if (currentDebateID != -1)
            {
                object orderObj       = ViewState["Order"];
                object debateOrderObj = ViewState["dOrder"];
                object dateOrderObj   = ViewState["date"];
                object teamOrderObj   = ViewState["team"];

                if (orderObj != null)
                {
                    order = (OrderBy)(int.Parse(orderObj.ToString()));
                }
                if (debateOrderObj != null)
                {
                    dOrder = (DebateOrderVar)(int.Parse(debateOrderObj.ToString()));
                }

                object savedSeason = ViewState["Season"];

                if (savedSeason == null)
                {
                    debateSeason = DatabaseHandler.GetDebateSeason(currentDebateID);
                }
                else
                {
                    debateSeason = savedSeason as DebateSeason;
                }

                ViewState["Season"] = debateSeason;

                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(order, dOrder, debates);

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

                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, true, addedRows);
                                Table1.Rows.Add(debateRow);
                                addedRows++;
                            }
                        }
                    }
                }
                else
                {
                    foreach (Debate d in debates)
                    {
                        TableRow debateRow = Help.CreateDebateRow(d, true, addedRows);
                        Table1.Rows.Add(debateRow);
                        addedRows++;
                    }
                }
                if (addedRows <= 0)
                {
                    Table1.Visible         = false;
                    Panel_NoDebate.Visible = true;
                    Label_NoSchedule.Text  = "No results match your search.";
                }
                else
                {
                    Table1.Visible         = true;
                    Panel_NoDebate.Visible = false;
                }
            }
            else
            {
                Panel_Searching.Visible = false;
                Panel_NoDebate.Visible  = true;
            }
        }