|
From: <slu...@li...> - 2004-01-05 12:23:08
|
Update of /cvsroot/slugtalk/slugboards/slugtalk
In directory sc8-pr-cvs1:/tmp/cvs-serv5897
Modified Files:
Slugboards.cs delete.aspx.cs
Log Message:
More updates again! Deleting works now!
Index: Slugboards.cs
===================================================================
RCS file: /cvsroot/slugtalk/slugboards/slugtalk/Slugboards.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Slugboards.cs 5 Jan 2004 11:54:13 -0000 1.1
--- Slugboards.cs 5 Jan 2004 12:23:05 -0000 1.2
***************
*** 211,215 ****
HtmlCode += "\t<TR>\n";
! if((short)Webpage.Session["Type"] == 2)
HtmlCode += "\t\t<TD width=\"1%\" bgcolor=#eeffff><A href=\"delete.aspx?TopicID=" + Topics.GetColumn("ID").ToString() + "\"><IMG src=\"bigX.gif\" border=0></A></TD>\n";
else
--- 211,215 ----
HtmlCode += "\t<TR>\n";
! if((short)Webpage.Session["Type"] == 2 || (int)Boards.GetColumn("ModeratorID") == (int)Webpage.Session["ID"])
HtmlCode += "\t\t<TD width=\"1%\" bgcolor=#eeffff><A href=\"delete.aspx?TopicID=" + Topics.GetColumn("ID").ToString() + "\"><IMG src=\"bigX.gif\" border=0></A></TD>\n";
else
***************
*** 296,304 ****
// Only display the delete button if the user posted the message or the user is an admin
! if((int)Users.GetColumn("ID") == (int)Webpage.Session["ID"] || (short)Webpage.Session["Type"] == 2)
{
HtmlCode += "\t\t<TD width=50% bgColor=#ffff99 align=right>";
HtmlCode += "<A href=\"user.aspx?UserID=" + Users.GetColumn("ID").ToString() + "\"><IMG src=\"userinfo.gif\" border=0></IMG></A>";
! HtmlCode += "<IMG src=\"delete.gif\"></IMG></TD>\n";
}
else
--- 296,305 ----
// Only display the delete button if the user posted the message or the user is an admin
! if((int)Users.GetColumn("ID") == (int)Webpage.Session["ID"] || (short)Webpage.Session["Type"] == 2 ||
! (int)Boards.GetColumn("ModeratorID") == (int)Webpage.Session["ID"])
{
HtmlCode += "\t\t<TD width=50% bgColor=#ffff99 align=right>";
HtmlCode += "<A href=\"user.aspx?UserID=" + Users.GetColumn("ID").ToString() + "\"><IMG src=\"userinfo.gif\" border=0></IMG></A>";
! HtmlCode += "<A href=\"delete.aspx?TopicID=" + TopicID + "&MessageID=" + MessageID + "\"><IMG src=\"delete.gif\" border=0></IMG></A></TD>\n";
}
else
Index: delete.aspx.cs
===================================================================
RCS file: /cvsroot/slugtalk/slugboards/slugtalk/delete.aspx.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** delete.aspx.cs 5 Jan 2004 11:54:13 -0000 1.1
--- delete.aspx.cs 5 Jan 2004 12:23:05 -0000 1.2
***************
*** 151,155 ****
Response.Redirect("error.aspx?Message=Topic no longer exists");
! if(!Boards.Read("SELECT * FROM Boards WHERE ID='" + Topics.GetColumn("BoardID").ToString() + "'"))
Response.Redirect("error.aspx?Message=Unknown error");
--- 151,157 ----
Response.Redirect("error.aspx?Message=Topic no longer exists");
! string BoardID = Topics.GetColumn("BoardID").ToString();
!
! if(!Boards.Read("SELECT * FROM Boards WHERE ID='" + BoardID + "'"))
Response.Redirect("error.aspx?Message=Unknown error");
***************
*** 179,183 ****
Boards.Update();
! Response.Redirect("slugboards.aspx?BoardID=" + Topics.GetColumn("BoardID").ToString());
}
--- 181,185 ----
Boards.Update();
! Response.Redirect("slugboards.aspx?BoardID=" + BoardID);
}
***************
*** 189,192 ****
--- 191,291 ----
private void DeleteMessage()
{
+ bool RedirectToTopic = true;
+
+ EzSqlConnection SqlConn = new EzSqlConnection(this);
+
+ EzSqlTable Boards = new EzSqlTable(SqlConn, "Boards", Server.MapPath("boards.xsd"));
+ EzSqlTable Topics = new EzSqlTable(SqlConn, "Topics", Server.MapPath("topics.xsd"));
+ EzSqlTable Messages = new EzSqlTable(SqlConn, "Messages", Server.MapPath("messages.xsd"));
+
+ // First, read the topic and board from the database
+ if(!Topics.Read("SELECT * FROM Topics WHERE ID='" + TopicID + "'"))
+ Response.Redirect("error.aspx?Message=Topic no longer exists");
+
+ string BoardID = Topics.GetColumn("BoardID").ToString();
+
+ if(!Boards.Read("SELECT * FROM Boards WHERE ID='" + BoardID + "'"))
+ Response.Redirect("error.aspx?Message=Unknown error");
+
+ // Now, read in the message
+ if(!Messages.Read("SELECT * FROM Messages WHERE ID='" + MessageID + "'"))
+ Response.Redirect("error.aspx?Message=Message no longer exists");
+
+ // First message?
+ if((long)Messages.GetColumn("PrevMessageID") == -1)
+ {
+ // Only message in the topic
+ if((long)Messages.GetColumn("NextMessageID") == -1)
+ {
+ // Delete the message and delete the topic
+ Messages.Delete();
+ Topics.Delete();
+ Boards.SetColumn("Posts", (int)Boards.GetColumn("Posts") - 1);
+ Boards.SetColumn("LastUpdate", DateTime.Now);
+ RedirectToTopic = false;
+ }
+ // There are multiple messages, remove this message from the front
+ else
+ {
+ long NextMessageID = (long)Messages.GetColumn("NextMessageID");
+
+ Topics.SetColumn("FirstMessageID", NextMessageID);
+ Topics.SetColumn("Replies", (int)Topics.GetColumn("Replies") - 1);
+ Messages.Delete();
+ Messages.Update();
+ if(Messages.Read("SELECT * FROM Messages WHERE ID='" + NextMessageID + "'"))
+ {
+ Messages.SetColumn("PrevMessageID", -1);
+ }
+ Boards.SetColumn("LastUpdate", DateTime.Now);
+ }
+ }
+ else
+ {
+ // Last message
+ if((long)Messages.GetColumn("NextMessageID") == -1)
+ {
+ long PrevMessageID = (long)Messages.GetColumn("PrevMessageID");
+
+ Topics.SetColumn("LastMessageID", PrevMessageID);
+ Topics.SetColumn("Replies", (int)Topics.GetColumn("Replies") - 1);
+ Messages.Delete();
+ Messages.Update();
+ if(Messages.Read("SELECT * FROM Messages WHERE ID='" + PrevMessageID + "'"))
+ {
+ Messages.SetColumn("NextMessageID", -1);
+ }
+ Boards.SetColumn("LastUpdate", DateTime.Now);
+ }
+ // A message somewhere in the middle
+ else
+ {
+ long PrevMessageID = (long)Messages.GetColumn("PrevMessageID"),
+ NextMessageID = (long)Messages.GetColumn("NextMessageID");
+
+ Topics.SetColumn("Replies", (int)Topics.GetColumn("Replies") - 1);
+ Messages.Delete();
+ Messages.Update();
+ if(Messages.Read("SELECT * FROM Messages WHERE ID='" + PrevMessageID + "'"))
+ {
+ Messages.SetColumn("NextMessageID", NextMessageID);
+ Messages.Update();
+ }
+ if(Messages.Read("SELECT * FROM Messages WHERE ID='" + NextMessageID + "'"))
+ {
+ Messages.SetColumn("PrevMessageID", PrevMessageID);
+ }
+ }
+ }
+
+ // Update the message the topic and the board with the changes
+ Messages.Update();
+ Topics.Update();
+ Boards.Update();
+
+ if(RedirectToTopic)
+ Response.Redirect("slugboards.aspx?TopicID=" + TopicID);
+ else
+ Response.Redirect("slugboards.aspx?BoardID=" + BoardID);
}
|