Esempio n. 1
0
        public void StartTutorial()
        {
            // load language from a YAML file.
            new YamlWatcher(_language, "..\\..\\tutorial5\\language.yaml"); // "..\\..\\" since we run the tutorial in vstudio
            Validator.Language = _language.GetChild("Validator") ?? LanguageNode.Empty;

            // since we do not use files on disk, we'll just add the resource template loader.
            ResourceTemplateLoader templateLoader = new ResourceTemplateLoader();

            templateLoader.LoadTemplates("/", Assembly.GetExecutingAssembly(), "Tutorial.Tutorial5.views");
            TemplateManager templateManager = new TemplateManager(templateLoader);

            templateManager.AddType(typeof(WebHelper));
            templateManager.Add("haml", new HamlGenerator());


            // we've just one controller. Add it.
            ControllerModule controllerModule = new ControllerModule();

            controllerModule.Add(new UserController(templateManager, _language));
            _server.Add(controllerModule);

            // add file module, to be able to handle files
            ResourceFileModule fileModule = new ResourceFileModule();

            fileModule.AddResources("/", Assembly.GetExecutingAssembly(), "Tutorial.Tutorial5.public");
            _server.Add(fileModule);

            // ok. We should be done. Start the server.
            _server.Start(IPAddress.Any, 8081);

            Console.WriteLine("Tutorial 5 is running. Go to http://localhost:8081/user/");
            Console.WriteLine("Try to add '?lcid=1053' and '?lcid=1033' to address to switch language (i.e: http://localhost:8081/user/?lcid=1053).");
        }
        private static void TestProcess()
        {
            ResourceFileModule module = new ResourceFileModule();

            module.AddResources("/base/", module.GetType().Assembly, "HttpServer.MVC.Rendering");
            module.MimeTypes.Add("haml", "application/hamltype");

            /*
             * string contentType;
             * Assert.NotNull(module.GetResourceStream("\\base\\resourcetest.haml", out contentType));
             * Assert.Equal("application/hamltype", contentType);
             *
             * Assert.Throws(typeof(ForbiddenException), delegate { module.GetResourceStream("\\base\\resourcetest.xml", out contentType); });
             * Assert.Throws(typeof(InternalServerException), delegate { module.GetResourceStream("\\base\\resourcetest", out contentType); });
             * Assert.Null(module.GetResourceStream("\\base\\incorrecttest.haml", out contentType));
             * */
        }