Esempio n. 1
0
        /// <summary>
        /// Associates extensions with the view engine instance.
        /// </summary>
        /// <param name="engine">The view engine instance</param>
        public void RegisterEngineForView(IViewEngine engine)
        {
            if (ext2ViewEngine.Contains(engine.ViewFileExtension))
            {
                var existing = (IViewEngine)ext2ViewEngine[engine.ViewFileExtension];

                throw new MonoRailException(
                          "At least two view engines are handling the same file extension. " +
                          "This isn't going to work. Extension: " + engine.ViewFileExtension +
                          " View Engine 1: " + existing.GetType() +
                          " View Engine 2: " + engine.GetType());
            }

            var extension = engine.ViewFileExtension.StartsWith(".")
                                                ? engine.ViewFileExtension
                                                : "." + engine.ViewFileExtension;

            ext2ViewEngine[extension] = engine;

            if (engine.SupportsJSGeneration && ext2ViewEngine.Contains(engine.JSGeneratorFileExtension))
            {
                var existing = (IViewEngine)ext2ViewEngine[engine.JSGeneratorFileExtension];

                throw new MonoRailException(
                          "At least two view engines are handling the same file extension. " +
                          "This isn't going to work. Extension: " + engine.JSGeneratorFileExtension +
                          " View Engine 1: " + existing.GetType() +
                          " View Engine 2: " + engine.GetType());
            }

            if (engine.SupportsJSGeneration)
            {
                extension = engine.JSGeneratorFileExtension.StartsWith(".")
                                                ? engine.JSGeneratorFileExtension
                                                : "." + engine.JSGeneratorFileExtension;

                ext2ViewEngine[extension] = engine;
                jsgFastLookup[extension]  = engine;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Enables namespace-aware views location. Always call after you are done adding view engines.
        /// </summary>
        /// <param name="engines">The view engine collection.</param>
        public static void EnableCodeRouting(this ViewEngineCollection engines)
        {
            if (engines == null)
            {
                throw new ArgumentNullException("engines");
            }

            for (int i = 0; i < engines.Count; i++)
            {
                IViewEngine engine = engines[i];

                if (engine.GetType() == typeof(Web.Mvc.ViewEngineWrapper))
                {
                    continue;
                }

                engines[i] = new Web.Mvc.ViewEngineWrapper(engine);
            }

            EmbeddedViewsVirtualPathProvider.RegisterIfNecessary();
        }
Esempio n. 3
0
 public ProfilingViewEngine(IViewEngine inner)
 {
     _inner = inner;
     _name  = inner.GetType().Name;
 }
Esempio n. 4
0
 /// <summary>
 /// Creates a new instance of <see cref="ViewEngineDescriptor"/> using the specified type.
 /// </summary>
 /// <param name="viewEngine">An instance of <see cref="IViewEngine"/> that the descriptor represents.</param>
 public ViewEngineDescriptor([NotNull] IViewEngine viewEngine)
 {
     ViewEngine     = viewEngine;
     ViewEngineType = viewEngine.GetType();
 }
Esempio n. 5
0
 public ProfilingViewEngine(IViewEngine inner, IProfiler profiler)
 {
     Inner     = inner;
     _profiler = profiler;
     _name     = inner.GetType().Name;
 }
		/// <summary>
		/// Associates extensions with the view engine instance.
		/// </summary>
		/// <param name="engine">The view engine instance</param>
		public void RegisterEngineForView(IViewEngine engine)
		{
			if (ext2ViewEngine.Contains(engine.ViewFileExtension))
			{
				var existing = (IViewEngine) ext2ViewEngine[engine.ViewFileExtension];

				throw new MonoRailException(
					"At least two view engines are handling the same file extension. " +
					"This isn't going to work. Extension: " + engine.ViewFileExtension +
					" View Engine 1: " + existing.GetType() +
					" View Engine 2: " + engine.GetType());
			}

			var extension = engine.ViewFileExtension.StartsWith(".")
			                   	? engine.ViewFileExtension
			                   	: "." + engine.ViewFileExtension;

			ext2ViewEngine[extension] = engine;

			if (engine.SupportsJSGeneration && ext2ViewEngine.Contains(engine.JSGeneratorFileExtension))
			{
				var existing = (IViewEngine) ext2ViewEngine[engine.JSGeneratorFileExtension];

				throw new MonoRailException(
					"At least two view engines are handling the same file extension. " +
					"This isn't going to work. Extension: " + engine.JSGeneratorFileExtension +
					" View Engine 1: " + existing.GetType() +
					" View Engine 2: " + engine.GetType());
			}

			if (engine.SupportsJSGeneration)
			{
				extension = engine.JSGeneratorFileExtension.StartsWith(".")
				            	? engine.JSGeneratorFileExtension
				            	: "." + engine.JSGeneratorFileExtension;

				ext2ViewEngine[extension] = engine;
				jsgFastLookup[extension] = engine;
			}
		}
		public ProfilingViewEngine(IViewEngine inner)
		{
			_inner = inner;
			_name = inner.GetType().Name;
		}