index.aspx:
<%@ Page Inherits="myPage.myIndex" Src="myIndex.cs" %>
<asp:Literal id="HtmlHead" runat="server"></asp:Literal>
<asp:datalist id="entriesList" runat="server">
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
</asp:datalist>
<asp:Literal id="HtmlFoot" runat="server"></asp:Literal>
myIndex.cs
using System;
using System.Web;
using System.Text;
using System.IO;
using System.Xml;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Collections;
using myPage;
namespace myPage
{
/// <summary>
/// Summary description for index.
/// </summary>
public class myIndex : Page
{
public Literal HtmlHead;
public Literal HtmlFoot;
public DataList entriesList;
void Page_Load(Object sender, EventArgs e)
{
Int64 time=System.DateTime.Now.Ticks;
Code tmp = new Code();
//tmp.SendMail(sender);
HtmlHead.Text = tmp.Head("Welcome!");
Main(sender, tmp);
HtmlFoot.Text = tmp.Foot((float)(System.DateTime.Now.Ticks-time)/10000);
}
public void Main(Object sender, Code code)
{
ArrayList entries = new ArrayList();
bool tmpbool=true;
String fileName = Server.MapPath(System.DateTime.Now.Month+"-"+System.DateTime.Now.Year+".xml");
XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlElement root = doc.DocumentElement;
XmlNodeList CreateTimeList = root.GetElementsByTagName("CreateTime");
XmlNodeList SubjectList = root.GetElementsByTagName("Subject");
XmlNodeList TextList = root.GetElementsByTagName("Text");
for (int i=(CreateTimeList.Count-1); i > -1 ; i--)
{
tmpbool=!tmpbool;
entries.Add(HTMLEntry(Int64.Parse(CreateTimeList[i].InnerText), SubjectList[i].InnerText, TextList[i].InnerText, code)+"<p />");
}
entriesList.DataSource = entries;
entriesList.DataBind();
}
public string HTMLEntry(Int64 CreateTime, string Subject, string Text, Code code)
{
return code.Box("<table width=\"685\" class=\"EntryTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"+
"<tr><td class=\"EntrySubject\">"+Subject+"</td><td class=\"EntryTime\">"+(new System.DateTime(CreateTime))+"</td></tr>\n"+
"<tr><td class=\"EntryText\" colspan=\"2\">"+Text+"</td></tr>\n"+
"</table>\n");
}
}
}
code.cs
// code.cs
using System;
using System.Web;
using System.Text;
using System.IO;
using System.Xml;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Collections;
namespace myPage
{
public class Code
{
bool reverse;
public Code()
{
reverse=false;
}
public string Head(string title)
{
string tmp="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"DTD/xhtml1-strict.dtd\">\n"+
"\n"+
"<html>\n"+
"\n"+
" <head>\n"+
" <title>"+title+"</title>\n"+
" <link rel=\"STYLESHEET\" type=\"text/css\" href=\"style.css\"></link>\n"+
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> \n"+
" </head>\n"+
"\n"+
" <body>\n"+
" <table width=\"100%\" class=\"GeneralTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"+
" <tr>\n"+
" <td>\n"+
" <table width=\"701\" class=\"BoxTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"+
" <tr>\n"+
" <td>\n"+
" <a href=\"index.aspx\"><img src=\"images/top_banner.gif\" class=\"TopImage\" alt=\"\" /></a>\n"+
" </td>\n"+
" </tr>\n"+
" </table>\n"+
" <p />\n";
return tmp;
}
public string Foot(double time)
{
return " <table width=\"701\" class=\"BoxTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"+
" <tr>\n"+
" <td>\n"+
Box("Execute time: "+Convert.ToInt32(time)+" ms <a href=\"
http://validator.w3.org/check/referer\"><img src=\"
http://www.w3.org/Icons/valid-xhtml10\" class=\"TopImage\" alt=\"Valid XHTML 1.0!\" height=\"31\" width=\"88\" /></a> <a href=\"
http://jigsaw.w3.org/css-validator/validator?uri=http://www.kellberg.com/style.css\"><img src=\"
http://jigsaw.w3.org/css-validator/images/vcss\" class=\"TopImage\" alt=\"Valid CSS!\"></a>\n")+
" </td>\n"+
" </tr>\n"+
" </table>\n"+
" </td>\n"+
" </tr>\n"+
" </table>\n"+
" </body>\n"+
"</html>\n";
}
public string Box(string content)
{
reverse=!reverse;
return BoxHead(reverse)+content+BoxFoot(reverse);
}
public string BoxHead(bool reverse)
{
string tmp = " <table width=\"701\" class=\"BoxTable\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"+
" <tr>\n"+
" <td colspan=\"3\"><img src=\"images/box_top"+(reverse ? "_r" : "")+".gif\" alt=\"\" /></td>\n"+
" </tr>\n"+
" <tr>\n"+
" <td class=\"BoxLeft\"><img src=\"images/spacer.gif\" width=\"8\" alt=\"\" /></td> \n"+
" <td class=\"BoxContent\">";
return tmp;
}
public string BoxFoot(bool reverse)
{
string tmp = "</td> \n"+
" <td class=\"BoxRight\"><img src=\"images/spacer.gif\" width=\"8\" alt=\"\" /></td> \n"+
" </tr>\n"+
" <tr>\n"+
" <td colspan=\"3\"><img src=\"images/box_bottom"+(reverse ? "_r" : "")+".gif\" alt=\"\" /></td>\n"+
" </tr>\n"+
" </table>";
return tmp;
}
public void SendMail(Object sender)
{
string text = "stats\n"+
DateTime.Now+"\n";
//Request.UserAgent+"\n"+
//Request.UserHostAddress+"\n"+
//Request.UrlReferrer+"\n";
// Build a MailMessage
System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage();
mailMessage.From = "michael@kellberg.com";
mailMessage.To = "michael@kellberg.com";
mailMessage.Subject = "Kellberg.com stat";
mailMessage.BodyFormat = System.Web.Mail.MailFormat.Text;
mailMessage.Body=text;
System.Web.Mail.SmtpMail.SmtpServer = "mail.kellberg.com";
System.Web.Mail.SmtpMail.Send(mailMessage);
}
}
}