Does this dress make me look fat?

Here's a nice little bit of code that can be used to dynamically theme a website that has multiple domains at the same site.
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;

namespace URLThemeHandler {
public class ThemeHandler : IHttpModule {
#region IHttpModule Members

public void Dispose() {
}

public void Init(HttpApplication context) {
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
}

void context_PreRequestHandlerExecute(object sender, EventArgs e) {
HttpContext currentContext = HttpContext.Current;
if (!(currentContext.Handler is System.Web.UI.Page)) return;
System.Web.UI.Page myPage = currentContext.Handler as System.Web.UI.Page;
string strHost = currentContext.Request.Url.Host;
if(ThemeExists(strHost))
myPage.Theme = strHost;
}

bool ThemeExists(string theme) {
string strPath = HttpContext.Current.Server.MapPath("~/App_Themes/" + theme);
return System.IO.Directory.Exists(strPath);
}

#endregion
}
}

You can register it in the httpModules section of the Web.config.

Comments

Popular posts from this blog

Database Projects, SQL Unit Tests, and TeamCity

Building nice XML from SQL Server Tables

Brent: Programmer. Gamer. Cheapskate. All around good guy.