Esempio n. 1
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>";
    }