An alternative to UBB.threads
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FLocal/IISMainHandler/HandlersFactory.cs

56 lines
1.7 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using FLocal.Core;
namespace FLocal.IISHandler {
class HandlersFactory {
public static ISpecificHandler getHandler(WebContext context) {
// if(!context.httprequest.Path.EndsWith("/")) {
// return new handlers.WrongUrlHandler();
// throw new FLocalException("Malformed url");
// }
if(context.requestParts.Length < 1) return new handlers.RootHandler();
switch(context.requestParts[0].ToLower()) {
case "boards":
return new handlers.BoardsHandler();
case "board":
return new handlers.BoardHandler();
case "boardasthread":
return new handlers.response.BoardAsThreadHandler();
case "thread":
return new handlers.ThreadHandler();
case "post":
return new handlers.PostHandler();
case "login":
return new handlers.response.LoginHandler();
case "migrateaccount":
return new handlers.response.MigrateAccountHandler();
case "static":
return new handlers.StaticHandler(context.requestParts);
case "do":
if(context.requestParts.Length < 2) {
return new handlers.WrongUrlHandler();
} else {
switch(context.requestParts[1].ToLower()) {
case "login":
return new handlers.request.LoginHandler();
case "logout":
return new handlers.request.LogoutHandler();
case "migrateaccount":
return new handlers.request.MigrateAccountHandler();
default:
return new handlers.WrongUrlHandler();
}
}
default:
return new handlers.DebugHandler(context.requestParts[0]);
}
}
}
}