コード例 #1
0
        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());
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: michal-korniak/UMCS
        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();
        }