Exemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        HDSchedule schedule = getSchedule(Convert.ToInt32(Session["UserID"]));

        Boolean scheduleHasClasses = schedule.hasClasses();
        Boolean scheduleHasTeachers = schedule.hasTeachers();

        if (scheduleHasClasses)
        {
            ltrClasses.Text = "";
            ltrClasses.Text += "<table id='classes-table'><tr><th id='classes-table-header' colspan='6'>Classes</th></tr>";
            for (int y = 0; y < HDSchedule.DEFAULT_DAY_LENGTH; y++)
            {
                ltrClasses.Text += "<tr class='classes-row'>";
                for (int x = 0; x < HDSchedule.DEFAULT_WEEK_LENGTH; x++)
                {
                    ltrClasses.Text += "<td class='classes-cell'>";
                    string className = schedule.classes[x, y];
                    ltrClasses.Text += className;

                    ltrClasses.Text += "<div class='roster-tooltip'>";
                    ltrClasses.Text += "<div class='roster-tooltip-header'>Friends in " + className + "</div>";

                    ltrClasses.Text += "<div class='roster-tooltip-text'>";

                    List<string> friendsInClass = new List<string>();

                    string selectFriendsStringCmdStr = "SELECT Friends FROM Users WHERE ID = ?";
                    OleDbCommand selectFriendsStringCmd = new OleDbCommand(selectFriendsStringCmdStr, conn);
                    selectFriendsStringCmd.Parameters.Add(new OleDbParameter("@ID", Session["UserID"]));

                    conn.Open();
                    OleDbDataReader drFriends = selectFriendsStringCmd.ExecuteReader();
                    string friendsString = "";
                    while (drFriends.Read())
                        friendsString = (string)drFriends["Friends"];
                    drFriends.Close();
                    conn.Close();

                    if (friendsString.Length > 0)
                    {
                        string[] friendIDStrings = friendsString.Split(' ');
                        int[] friendIDs = new int[friendIDStrings.Length];
                        for (int i = 0; i < friendIDStrings.Length; i++)
                            friendIDs[i] = Convert.ToInt32(friendIDStrings[i]);

                        string selectFriendsDataCmdStr = "SELECT First_Name, Last_Name, Username, Schedule FROM Users WHERE";
                        foreach (string friendID in friendIDStrings)
                            selectFriendsDataCmdStr += " ID = " + friendID + " OR";
                        selectFriendsDataCmdStr = selectFriendsDataCmdStr.Substring(0, selectFriendsDataCmdStr.Length - 3);
                        selectFriendsDataCmdStr += " ORDER BY Username";
                        OleDbCommand selectFriendsDataCmd = new OleDbCommand(selectFriendsDataCmdStr, conn);

                        conn.Open();
                        OleDbDataReader drFriendsData = selectFriendsDataCmd.ExecuteReader();
                        while (drFriendsData.Read())
                        {
                            HDSchedule friendSchedule = new HDSchedule();
                            friendSchedule.setFromDatabaseString((string)drFriendsData["Schedule"]);
                            Comparator compare = new Comparator(schedule, friendSchedule);

                            Boolean[,] commonPeriods = compare.getCommonPeriods();
                            if (commonPeriods[x, y] == true)
                                friendsInClass.Add((string)drFriendsData["Username"]);
                        }
                        drFriendsData.Close();
                        conn.Close();
                    }

                    if (friendsInClass.Count() == 0)
                        ltrClasses.Text += "None";
                    else
                        foreach (string friendInClassName in friendsInClass)
                            ltrClasses.Text += "<a class='friend-in-class-name-item' href='User.aspx?u=" + friendInClassName + "'>" + friendInClassName + "</a><br />";

                    ltrClasses.Text += "</div>";
                    ltrClasses.Text += "</div>";

                    ltrClasses.Text += "</td>";
                }
                ltrClasses.Text += "</tr>";
            }

            ltrClasses.Text += "</table>";
        }

        if (scheduleHasTeachers)
        {
            this.scheduleFriendsInstructions.Style.Add("display", "block");
            ltrTeachers.Text = "";
            ltrTeachers.Text += "<table id='teachers-table'><tr><th id='teachers-table-header' colspan='2'>Teachers</th></tr>";

            foreach (string className in schedule.teachers.Keys)
            {
                ltrTeachers.Text += "<tr class='teachers-row'>";

                ltrTeachers.Text += "<td class='teachers-cell' onclick='#teachers-cell'>";
                ltrTeachers.Text += className;

                ltrTeachers.Text += "<div class='roster-tooltip'>";
                ltrTeachers.Text += "<div class='roster-tooltip-header'>Friends in " + className + "</div>";

                ltrTeachers.Text += "<div class='roster-tooltip-text'>";

                List<string> friendsInClass = new List<string>();

                string selectFriendsStringCmdStr = "SELECT Friends FROM Users WHERE ID = ?";
                OleDbCommand selectFriendsStringCmd = new OleDbCommand(selectFriendsStringCmdStr, conn);
                selectFriendsStringCmd.Parameters.Add(new OleDbParameter("@ID", Session["UserID"]));

                conn.Open();
                OleDbDataReader drFriends = selectFriendsStringCmd.ExecuteReader();
                string friendsString = "";
                while (drFriends.Read())
                    friendsString = (string)drFriends["Friends"];
                drFriends.Close();
                conn.Close();

                if (friendsString.Length > 0)
                {
                    string[] friendIDStrings = friendsString.Split(' ');
                    int[] friendIDs = new int[friendIDStrings.Length];
                    for (int i = 0; i < friendIDStrings.Length; i++)
                        friendIDs[i] = Convert.ToInt32(friendIDStrings[i]);

                    string selectFriendsDataCmdStr = "SELECT First_Name, Last_Name, Username, Schedule FROM Users WHERE";
                    foreach (string friendID in friendIDStrings)
                        selectFriendsDataCmdStr += " ID = " + friendID + " OR";
                    selectFriendsDataCmdStr = selectFriendsDataCmdStr.Substring(0, selectFriendsDataCmdStr.Length - 3);
                    selectFriendsDataCmdStr += " ORDER BY Username";
                    OleDbCommand selectFriendsDataCmd = new OleDbCommand(selectFriendsDataCmdStr, conn);

                    conn.Open();
                    OleDbDataReader drFriendsData = selectFriendsDataCmd.ExecuteReader();
                    while (drFriendsData.Read())
                    {
                        HDSchedule friendSchedule = new HDSchedule();
                        friendSchedule.setFromDatabaseString((string)drFriendsData["Schedule"]);
                        Comparator compare = new Comparator(schedule, friendSchedule);

                        string[] commonClasses = compare.getCommonClasses();
                        if (commonClasses.Contains(className))
                        {
                            friendsInClass.Add((string)drFriendsData["Username"]);
                        }
                    }
                    drFriendsData.Close();
                    conn.Close();
                }

                if (friendsInClass.Count() == 0)
                    ltrTeachers.Text += "None";
                else
                    foreach (string friendInClassName in friendsInClass)
                        ltrTeachers.Text += "<a class='friend-in-class-name-item' href='User.aspx?u=" + friendInClassName + "'>" + friendInClassName + "</a><br />";

                ltrTeachers.Text += "</div>";
                ltrTeachers.Text += "</div>";

                ltrTeachers.Text += "</td>";

                ltrTeachers.Text += "<td class='teachers-cell'>";
                string teacherName = "";
                schedule.teachers.TryGetValue(className, out teacherName);
                ltrTeachers.Text += teacherName;
                ltrTeachers.Text += "</td>";

                ltrTeachers.Text += "</tr>";
            }

            ltrTeachers.Text += "</table>";
        }

        if (!scheduleHasClasses && !scheduleHasTeachers)
        {
            this.btnApplyTeachers.Enabled = false;
            this.btnApplyTeachers.Style.Add("background", "rgba(100, 100, 100, .1)");
            this.btnApplyTeachers.Style.Add("color", "rgba(30, 30, 30, .3)");
            this.btnApplyTeachers.Style.Add("border", "1px solid rgba(40, 40, 40, .1)");
            this.scheduleFriendsInstructions.Style.Add("display", "none");
        }
        else if (scheduleHasClasses && !scheduleHasTeachers)
        {
            string[] classNames = schedule.getAllClassNames();
            DropDownList[] dropDowns = new DropDownList[classNames.Length];
            for (int i = 0; i < classNames.Length; i++)
            {
                dropDowns[i] = new DropDownList();
                dropDowns[i].CssClass = "teachers-drop-down";
                dropDowns[i].Items.Add(new ListItem(teacherDropdownDefaultText));

                string selectTeacherNamesCmdStr = "SELECT First_Name, Last_Name FROM Teachers  ORDER BY Last_Name ASC";
                OleDbCommand selectTeacherNamesCmd = new OleDbCommand(selectTeacherNamesCmdStr, conn);

                conn.Open();
                OleDbDataReader drTeacherNames = selectTeacherNamesCmd.ExecuteReader();
                while (drTeacherNames.Read())
                    dropDowns[i].Items.Add(new ListItem(drTeacherNames["Last_Name"] + ", " + drTeacherNames["First_Name"]));
                drTeacherNames.Close();
                conn.Close();

                dropDowns[i].Items.FindByText(teacherDropdownDefaultText).Selected = true;
            }
            for (int i = 0; i < classNames.Length; i++)
            {
                string classNameText = "<div class='teachers-class-name'>" + classNames[i] + "</div>";
                LiteralControl classNameCtrl = new LiteralControl(classNameText);
                Panel pnlClassNameAndDropdown = new Panel();
                pnlClassNameAndDropdown.CssClass = "pnlClassNameWithDropdown";
                pnlClassNameAndDropdown.Controls.Add(classNameCtrl);
                pnlClassNameAndDropdown.Controls.Add(dropDowns[i]);
                this.pnlTeacherDropdowns.Controls.Add(pnlClassNameAndDropdown);
            }
            this.scheduleFriendsInstructions.Style.Add("display", "none");
        }
        else if (scheduleHasClasses && scheduleHasTeachers)
        {
            string[] classNames = schedule.getAllClassNames();
            DropDownList[] dropDowns = new DropDownList[classNames.Length];
            for (int i = 0; i < classNames.Length; i++)
            {
                dropDowns[i] = new DropDownList();
                dropDowns[i].CssClass = "teachers-drop-down";

                string selectTeacherNamesCmdStr = "SELECT First_Name, Last_Name FROM Teachers ORDER BY Last_Name ASC";
                OleDbCommand selectTeacherNamesCmd = new OleDbCommand(selectTeacherNamesCmdStr, conn);

                conn.Open();
                OleDbDataReader drTeacherNames = selectTeacherNamesCmd.ExecuteReader();
                while (drTeacherNames.Read())
                    dropDowns[i].Items.Add(new ListItem(drTeacherNames["Last_Name"] + ", " + drTeacherNames["First_Name"]));
                drTeacherNames.Close();
                conn.Close();
            }
            for (int i = 0; i < classNames.Length; i++)
            {
                string classNameText = "<div class='teachers-class-name'>" + classNames[i] + "</div>";
                LiteralControl classNameCtrl = new LiteralControl(classNameText);
                Panel pnlClassNameAndDropdown = new Panel();
                pnlClassNameAndDropdown.CssClass = "pnlClassNameWithDropdown";
                pnlClassNameAndDropdown.Controls.Add(classNameCtrl);
                pnlClassNameAndDropdown.Controls.Add(dropDowns[i]);
                this.pnlTeacherDropdowns.Controls.Add(pnlClassNameAndDropdown);

                string teacherName = "";
                schedule.teachers.TryGetValue(classNames[i], out teacherName);
                dropDowns[i].Items.FindByText(teacherName).Selected = true;
            }
        }
    }
Exemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string selectPageUserDataCmdStr = "SELECT ID, First_Name, Last_Name, Username, Schedule FROM Users WHERE Username = ?";
        OleDbCommand selectPageUserDataCmd = new OleDbCommand(selectPageUserDataCmdStr, conn);
        selectPageUserDataCmd.Parameters.Add(new OleDbParameter("@Username", Request.QueryString["u"]));

        conn.Open();
        OleDbDataReader drPageUserData = selectPageUserDataCmd.ExecuteReader();
        int pageUserID = 0;
        string pageUserName = "";
        string pageUserScheduleString = "";
        while (drPageUserData.Read())
        {
            Boolean hasFirstName = true;
            Boolean hasLastName = true;
            string firstName = "";
            string lastName = "";
            if (drPageUserData["First_Name"].ToString().Trim() == "NULL" || drPageUserData["First_Name"].ToString().Trim().Equals(""))
                hasFirstName = false;
            else
                firstName = drPageUserData["First_Name"].ToString();
            if (drPageUserData["Last_Name"].ToString().Trim() == "NULL" || drPageUserData["Last_Name"].ToString().Trim().Equals(""))
                hasLastName = false;
            else
                lastName = drPageUserData["Last_Name"].ToString();

            pageUserID = (int)drPageUserData["ID"];
            if (drPageUserData["Schedule"] != null && !drPageUserData["Schedule"].ToString().Trim().Equals(""))
                pageUserScheduleString = (string)drPageUserData["Schedule"];

            if (hasFirstName || hasLastName)
                pageUserName = firstName + " " + lastName + " (" + Request.QueryString["u"] + ")";
            else
                pageUserName = Request.QueryString["u"];
        }
        drPageUserData.Close();
        conn.Close();

        this.lblName.Text = pageUserName;

        string selectFriendsStringCmdStr = "SELECT Friends FROM Users WHERE ID = ?";
        OleDbCommand selectFriendsStringCmd = new OleDbCommand(selectFriendsStringCmdStr, conn);
        selectFriendsStringCmd.Parameters.Add(new OleDbParameter("@ID", Session["UserID"]));

        conn.Open();
        OleDbDataReader drFriends = selectFriendsStringCmd.ExecuteReader();
        string friendsString = "";
        while (drFriends.Read())
            friendsString = (string)drFriends["Friends"];
        drFriends.Close();
        conn.Close();

        Boolean isFriend = false;

        if (friendsString.Length != 0)
        {
            string[] friendIDStrings = friendsString.Split(' ');
            int[] friendIDs = new int[friendIDStrings.Length];
            for (int i = 0; i < friendIDStrings.Length; i++)
                friendIDs[i] = Convert.ToInt32(friendIDStrings[i]);

            foreach (int ifriendID in friendIDs)
                if (pageUserID == ifriendID)
                    isFriend = true;
        }

        if (isFriend)
            this.btnFriendAddRemove.Text = "Remove from Friends";
        else
            this.btnFriendAddRemove.Text = "Add to Friends";

        HDSchedule schedule = getSchedule(Request.QueryString["u"]);

        HDSchedule currentUserSchedule = getSchedule(Convert.ToInt32(Session["UserID"]));
        Comparator compare = new Comparator(schedule, currentUserSchedule);

        Boolean scheduleHasClasses = schedule.hasClasses();
        Boolean scheduleHasTeachers = schedule.hasTeachers();

        if (scheduleHasClasses)
        {
            ltrClasses.Text = "";
            ltrClasses.Text += "<table id='classes-user-table'><tr><th id='classes-table-header' colspan='6'>Classes</th></tr>";
            Boolean[,] simClasses = compare.getCommonPeriods();
            for (int y = 0; y < HDSchedule.DEFAULT_DAY_LENGTH; y++)
            {
                ltrClasses.Text += "<tr class='classes-row'>";
                for (int x = 0; x < HDSchedule.DEFAULT_WEEK_LENGTH; x++)
                {
                    if (simClasses[x, y] == true)
                    {
                        ltrClasses.Text += "<td class='classes-cell classes-cell-highlight'>";
                        ltrClasses.Text += schedule.classes[x, y];
                        ltrClasses.Text += "</td>";
                    }
                    else
                    {
                        ltrClasses.Text += "<td class='classes-cell'>";
                        ltrClasses.Text += schedule.classes[x, y];
                        ltrClasses.Text += "</td>";
                    }
                }

                ltrClasses.Text += "</tr>";
            }

            ltrClasses.Text += "</table>";
        }

        if (scheduleHasTeachers)
        {
            ltrTeachers.Text = "";
            ltrTeachers.Text += "<table id='teachers-user-table'><tr><th id='teachers-table-header' colspan='2'>Teachers</th></tr>";

            foreach (string className in schedule.teachers.Keys)
            {
                ltrTeachers.Text += "<tr class='teachers-row'>";

                ltrTeachers.Text += "<td class='teachers-cell'>";
                ltrTeachers.Text += className;
                ltrTeachers.Text += "</td>";

                ltrTeachers.Text += "<td class='teachers-cell'>";
                string teacherName = "";
                schedule.teachers.TryGetValue(className, out teacherName);
                ltrTeachers.Text += teacherName;
                ltrTeachers.Text += "</td>";

                ltrTeachers.Text += "</tr>";
            }

            ltrTeachers.Text += "</table>";
        }

        ltrComparison.Text = "";

        ltrComparison.Text += "<div id='user-comparison-text'>";
        if (!currentUserSchedule.hasTeachers())
            ltrComparison.Text += "<span class='user-comparison-text-header'>You have not added your schedule yet</span>";
        else if (!schedule.hasClasses() && !schedule.hasTeachers())
            ltrComparison.Text += "<span class='user-comparison-text-header'>This user has not added their schedule yet</span>";
        else if (schedule.hasClasses() && !schedule.hasTeachers())
            ltrComparison.Text += "<span class='user-comparison-text-header'>This user has not added their teachers yet</span>";
        else
        {
            ltrComparison.Text += "<span class='user-comparison-text-header'>Common Classes:</span> ";
            foreach (string className in compare.getCommonClasses())
                ltrComparison.Text += "<br />" + className;
            ltrComparison.Text += "<br /><br /><span class='user-comparison-text-header'>Common Frees:</span> ";
            foreach (string freePeriod in compare.getCommonFrees())
                ltrComparison.Text += "<br />" + freePeriod;
            ltrComparison.Text += "<br /><br /><span class='user-comparison-text-header'>Common Lunches:</span> <br />";
            foreach (string lunchPeriod in compare.getCommonLunches())
                ltrComparison.Text += lunchPeriod + " ";
        }
        ltrComparison.Text += "</div>";
    }