private void HandleHttpModule(IHttpModule module, IHttpRequest req, IHttpResponse resp) { var frontend = new FrontendHandler(req, resp); var handleCtx = new SimpleHttpRequestContext(); handleCtx.Request = req; handleCtx.Response = resp; var result = module.HandleRequest(handleCtx); if (result.Errors.Count > 0) { throw new AggregateException(result.Errors); } var directOutput = resp.DirectOutput; if (!directOutput) { var header = ServiceLocator.Current.GetInstance <IHtmlTemplate>("__header"); frontend.WriteVars(header); resp.Prefix(header.Render()); } if (!directOutput) { var footer = ServiceLocator.Current.GetInstance <IHtmlTemplate>("__footer"); frontend.WriteVars(footer); resp.Append(footer.Render()); } }
static void Main(string[] args) { IHandler chefHandler = new ChefHandler("Adam Nowak"); IHandler analyticHandler = new AnalyticHandler("Andrzej Daniluk"); IHandler programmerHandler = new ProgrammerHandler("Mochi Per"); IHandler fronendHandler = new FrontendHandler("Marek Parowa"); chefHandler.SetNextHandler(analyticHandler); analyticHandler.SetNextHandler(programmerHandler); programmerHandler.SetNextHandler(fronendHandler); ProjectMediator mediator = new ProjectMediator(); chefHandler.Execute(mediator); mediator.ShowDevelopProgress(); }