public void Handle(IChannel channel, Request request)
{
var response = new Response();
response.Protocol = request.GetProtocol();
FileStream reader = null;
try
{
reader = new FileStream(string.Format(_path, _rx.Split(request.GetPath())), FileMode.Open, FileAccess.Read);
int index = request.GetPath().LastIndexOf(".");
if(index != -1 && index+1 < request.GetPath().Length)
{
try
{
string extension = request.GetPath().Substring(index+1);
response.ContentType = ContentTypeDictionary[extension];
}
catch (Exception)
{
}
}
if(response.ContentType.StartsWith("text/"))
response.SetContent(new StreamReader(reader).ReadToEnd());
else
response.SetContent(reader);
}
catch (Exception)
{
response.Status = 404;
}
if (reader != null)
reader.Close();
channel.SendMessage(response);
}