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