コード例 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.HttpMethod != "POST")
                ViewState["id"] = (Request.Params["id"] != null) ? Int32.Parse(Request.Params["id"]) : CurrentUser.Profile.Id;

            if (ViewState["id"] == null)
                Response.Redirect("Default.aspx", true);
            else
                id = (int)ViewState["id"];

            if (!CurrentUser.SecurityAccess["CanEditProfiles"] && id != CurrentUser.Profile.Id)
                Response.Redirect("Default.aspx", true);

            editProfile = UserProfile.FromDatabase(DatabaseManager.Current, id);
            if (editProfile == null)
                Response.Redirect("Default.aspx", true);

            ProfileBox.Title = "Edit Profile: " + editProfile.Username;
            Username.Text = editProfile.Username;
            if (Request.HttpMethod != "POST")
                DisplayName.Text = editProfile.DisplayName;
        }
コード例 #2
0
ファイル: Club.cs プロジェクト: aviansie-ben/OpenAnnounce
        public static void PopulatePageNumber(DatabaseManager manager, UserProfile settings, Label currentPageLabel, Label maxPageLabel, string mode, int currentPage, int numPerPage)
        {
            using (SqlCommand cmd = manager.CreateCommand())
            {
                if (mode == "ViewAll" || mode == "Approval")
                {
                    cmd.CommandText = "SELECT COUNT(*) FROM Clubs WHERE Status<>3";
                }
                else
                {
                    cmd.CommandText = "SELECT COUNT(*) FROM Clubs WHERE Status<>3 AND CreateUser=@createUser";
                }

                cmd.Parameters.AddWithValue("@createUser", settings.Id);
                cmd.Parameters.AddWithValue("@today", DateTime.Today);

                maxPageLabel.Text = Math.Max(1, Math.Ceiling((((int)cmd.ExecuteScalar()) / (double)numPerPage))).ToString();
                currentPageLabel.Text = currentPage.ToString();
            }
        }
コード例 #3
0
ファイル: Club.cs プロジェクト: aviansie-ben/OpenAnnounce
        public static void PopulateClubTable(DatabaseManager manager, UserProfile settings, string mode, bool showDeleted, HtmlTable table, int offset, int rows, Dictionary<int, CheckBox> checkBoxes)
        {
            using (SqlCommand cmd = manager.CreateCommand())
            {
                if (mode == "ViewAll" || mode == "Approval")
                {
                    cmd.CommandText = "SELECT * FROM Clubs WHERE 1=1";
                }
                else
                {
                    cmd.CommandText = "SELECT * FROM Clubs WHERE CreateUser=@createUser";
                }

                if (!showDeleted)
                    cmd.CommandText += " AND Status<>3";

                if (mode == "Approval")
                    cmd.CommandText += " ORDER BY (CASE WHEN Status = 0 THEN 1 ELSE 0 END) DESC, ";
                else if (mode == "Submission")
                    cmd.CommandText += " ORDER BY (CASE WHEN Status = 2 THEN 1 ELSE 0 END) DESC, ";
                else
                    cmd.CommandText += " ORDER BY ";

                cmd.CommandText += "Name ASC OFFSET " + offset + " ROWS FETCH NEXT " + rows + " ROWS ONLY";

                cmd.Parameters.AddWithValue("@createUser", settings.Id);
                cmd.Parameters.AddWithValue("@weekday", DateTime.Today.DayOfWeek);

                List<Club> clubs = new List<Club>();

                using (SqlDataReader r = cmd.ExecuteReader())
                {
                    if (r.HasRows)
                    {
                        while (r.Read())
                        {
                            clubs.Add(new Club(manager, r));
                        }
                    }
                    else
                    {
                        HtmlTableRow row = new HtmlTableRow();
                        HtmlTableCell cell;
                        row.Cells.Add(cell = new HtmlTableCell()
                        {
                            ColSpan = 5,
                            InnerHtml = "<em>There are currently no clubs requiring attention</em>",
                        });
                        cell.Style.Add("padding-left", "5px");
                        table.Rows.Add(row);
                    }
                }

                foreach (Club c in clubs)
                {
                    HtmlTableRow row = new HtmlTableRow();

                    if (c.Status == ClubStatus.Deleted)
                    {
                        row.Style.Add("background", "#f3f3f3");
                    }
                    else if (mode == "Approval" && c.Status == Club.ClubStatus.Pending)
                    {
                        row.Style.Add("background", "#ffa4a4");
                    }
                    else if (mode == "Submission" && c.Status == Club.ClubStatus.Denied)
                    {
                        row.Style.Add("background", "#ffa4a4");
                    }

                    HtmlTableCell checkCell;
                    CheckBox chk;

                    if (checkBoxes != null)
                    {
                        row.Cells.Add(checkCell = new HtmlTableCell());
                        checkCell.Style.Add("text-align", "center");
                        checkCell.Controls.Add(chk = new CheckBox()
                        {
                            ID = "chk_club_" + c.Id
                        });
                        if (checkBoxes.ContainsKey(c.Id))
                            checkBoxes[c.Id] = chk;
                        else
                            checkBoxes.Add(c.Id, chk);
                    }
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = c.Name });
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = c.CreatorDisplayName });
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = weekdays[c.Weekday] });
                    switch (c.Status)
                    {
                        case Club.ClubStatus.Pending:
                            row.Cells.Add(new HtmlTableCell() { InnerHtml = "Pending" });
                            break;
                        case Club.ClubStatus.Approved:
                            row.Cells.Add(new HtmlTableCell() { InnerHtml = "Approved" });
                            break;
                        case Club.ClubStatus.Denied:
                            row.Cells.Add(new HtmlTableCell() { InnerHtml = "Denied" });
                            break;
                        case Club.ClubStatus.Deleted:
                            row.Cells.Add(new HtmlTableCell() { InnerHtml = "Deleted" });
                            break;
                        default:
                            row.Cells.Add(new HtmlTableCell() { InnerHtml = "(Unknown)" });
                            break;
                    }
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = "<a href=\"ClubEdit.aspx?id=" + c.Id + "\" class=\"linkbutton-small\" style=\"padding-left: 8px; padding-right: 8px;\">Edit</a>" });

                    table.Rows.Add(row);
                }
            }
        }
コード例 #4
0
ファイル: Club.cs プロジェクト: aviansie-ben/OpenAnnounce
        public static void PopulateClubTable(DatabaseManager manager, UserProfile settings, CompiledSecurityInfo level, HtmlTable table, int offset, int rows, Dictionary<int, CheckBox> checkBoxes)
        {
            string mode;

            if (level["CanApproveClub"] && level["CanViewAllClub"])
                mode = "Approval";
            else if (level["CanViewAllClub"])
                mode = "ViewAll";
            else
                mode = "Submission";

            PopulateClubTable(manager, settings, mode, false, table, offset, rows, checkBoxes);
        }
コード例 #5
0
        public static UserProfile FromDatabase(DatabaseManager manager, string name, bool create)
        {
            using (SqlCommand cmd = manager.CreateCommand("SELECT * FROM Users WHERE Username=@username"))
            {
                cmd.Parameters.AddWithValue("@username", name);

                using (SqlDataReader r = cmd.ExecuteReader())
                {
                    if (r.Read())
                    {
                        return new UserProfile(manager, r);
                    }
                    else if (!create)
                    {
                        return null;
                    }
                }
            }

            UserProfile u = new UserProfile(manager, name);
            u.Insert();
            return u;
        }
コード例 #6
0
        public static void PopulatePageNumber(DatabaseManager manager, UserProfile settings, Label currentPageLabel, Label maxPageLabel, string mode, bool viewExpired, int currentPage, int numPerPage)
        {
            SqlCommand cmd;
            if (mode == "ViewAll" || mode == "Approval")
            {
                cmd = manager.CreateCommand("SELECT COUNT(*) FROM Announcements WHERE Status<>3");
            }
            else
            {
                cmd = manager.CreateCommand("SELECT COUNT(*) FROM Announcements WHERE Status<>3 AND CreateUser=@createUser");
            }

            try
            {
                if (!viewExpired)
                    cmd.CommandText += " AND EndDate>=@today";

                cmd.Parameters.AddWithValue("@createUser", settings.Id);
                cmd.Parameters.AddWithValue("@today", DateTime.Today);

                maxPageLabel.Text = Math.Max(1, Math.Ceiling((((int)cmd.ExecuteScalar()) / (double)numPerPage))).ToString();
                currentPageLabel.Text = currentPage.ToString();
            }
            finally
            {
                cmd.Dispose();
            }
        }
コード例 #7
0
        public static void PopulateAnnouncementTable(DatabaseManager manager, UserProfile settings, string mode, bool viewExpired, bool viewDeleted, HtmlTable table, int offset, int rows, Dictionary<int, CheckBox> checkBoxes)
        {
            SqlCommand cmd;

            if (mode == "ViewAll" || mode == "Approval")
            {
                cmd = manager.CreateCommand("SELECT * FROM Announcements WHERE 1=1");
            }
            else
            {
                cmd = manager.CreateCommand("SELECT * FROM Announcements WHERE CreateUser=@createUser");
            }

            try
            {
                if (!viewExpired)
                    cmd.CommandText += " AND EndDate>=@today";

                if (!viewDeleted)
                    cmd.CommandText += " AND Status<>3";

                if (mode == "Approval")
                    cmd.CommandText += " ORDER BY (CASE WHEN Status = 0 THEN 1 ELSE 0 END) DESC, ";
                else if (mode == "Submission")
                    cmd.CommandText += " ORDER BY (CASE WHEN Status = 2 THEN 1 ELSE 0 END) DESC, ";
                else
                    cmd.CommandText += " ORDER BY ";

                cmd.CommandText += "Importance DESC, StartDate DESC OFFSET " + offset + " ROWS FETCH NEXT " + rows + " ROWS ONLY";

                cmd.Parameters.AddWithValue("@createUser", settings.Id);
                cmd.Parameters.AddWithValue("@today", DateTime.Today);

                List<Announcement> announcements = new List<Announcement>();

                using (SqlDataReader r = cmd.ExecuteReader())
                {
                    if (r.HasRows)
                    {
                        while (r.Read())
                        {
                            announcements.Add(new Announcement(manager, r));
                        }
                    }
                    else
                    {
                        HtmlTableRow row = new HtmlTableRow();
                        HtmlTableCell cell;
                        row.Cells.Add(cell = new HtmlTableCell()
                        {
                            ColSpan = (checkBoxes == null) ? 6 : 7,
                            InnerHtml = "<em>There are currently no announcements requiring attention</em>",
                        });
                        cell.Style.Add("padding-left", "5px");
                        table.Rows.Add(row);
                        return;
                    }
                }

                foreach (Announcement a in announcements)
                {
                    HtmlTableRow row = new HtmlTableRow();

                    if (a.EndDate < DateTime.Today || a.Status == AnnouncementStatus.Deleted)
                    {
                        row.Style.Add("background", "#f3f3f3");
                    }
                    else if (mode == "Approval" && a.Status == Announcement.AnnouncementStatus.Pending)
                    {
                        row.Style.Add("background", "#ffa4a4");
                    }
                    else if (mode == "Submission" && a.Status == Announcement.AnnouncementStatus.Denied)
                    {
                        row.Style.Add("background", "#ffa4a4");
                    }
                    HtmlTableCell checkCell;
                    CheckBox chk;

                    if (checkBoxes != null)
                    {
                        row.Cells.Add(checkCell = new HtmlTableCell());
                        checkCell.Style.Add("text-align", "center");
                        checkCell.Controls.Add(chk = new CheckBox()
                        {
                            ID = "chk_announcement_" + a.Id
                        });
                        if (checkBoxes.ContainsKey(a.Id))
                            checkBoxes[a.Id] = chk;
                        else
                            checkBoxes.Add(a.Id, chk);
                    }
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = a.Title });
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = a.CreatorDisplayName });
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = a.StartDate.ToShortDateString() + " - " + a.EndDate.ToShortDateString() });
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = a.Scope.Name });
                    if (a.EndDate < DateTime.Today)
                    {
                        row.Cells.Add(new HtmlTableCell() { InnerHtml = "Expired" });
                    }
                    else
                    {
                        switch (a.Status)
                        {
                            case Announcement.AnnouncementStatus.Pending:
                                row.Cells.Add(new HtmlTableCell() { InnerHtml = "Pending" });
                                break;
                            case Announcement.AnnouncementStatus.Approved:
                                row.Cells.Add(new HtmlTableCell() { InnerHtml = "Approved" });
                                break;
                            case Announcement.AnnouncementStatus.Denied:
                                row.Cells.Add(new HtmlTableCell() { InnerHtml = "Denied" });
                                break;
                            case Announcement.AnnouncementStatus.Deleted:
                                row.Cells.Add(new HtmlTableCell() { InnerHtml = "Deleted" });
                                break;
                            default:
                                row.Cells.Add(new HtmlTableCell() { InnerHtml = "(Unknown)" });
                                break;
                        }
                    }
                    row.Cells.Add(new HtmlTableCell() { InnerHtml = "<a href=\"AnnouncementEdit.aspx?id=" + a.Id + "\" class=\"linkbutton-small\" style=\"padding-left: 8px; padding-right: 8px;\">Edit</a>" });

                    table.Rows.Add(row);
                }
            }
            finally
            {
                cmd.Dispose();
            }
        }