public void AsksEachViewEngineInTheOrderItWasCalled()
        {
            var redEngine = new Mock<IViewEngine>();
            var redResult = new ViewEngineResult(false, new[] { "Whatever"});
            redEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns(redResult);

            var orangeEngine = new Mock<IViewEngine>();
            orangeEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns((ViewEngineResult)null);

            var blueEngine = new Mock<IViewEngine>();
            var blueResult = new ViewEngineResult(true, new string[0]);
            blueEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns(blueResult);

            var greenEngine = new Mock<IViewEngine>();
            var greenResult = new ViewEngineResult(true, new string[0]);
            greenEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns(greenResult);

            var collection = new ViewEngineCollection();
            collection.Add(redEngine.Object);
            collection.Add(orangeEngine.Object);
            collection.Add(blueEngine.Object);
            collection.Add(greenEngine.Object);
            var result = collection.FindView(RequestBuilder.CreateRequest().BuildControllerContext(), new ViewResultOptions(), "Foo");
            Assert.AreEqual(blueResult, result);
        }
        public void FindPartialViewAggregatesAllSearchedLocationsIfAllEnginesFail()
        {
            // Arrange
            ControllerContext context = new Mock<ControllerContext>().Object;
            ViewEngineCollection viewEngineCollection = new ViewEngineCollection();
            Mock<IViewEngine> engine1 = new Mock<IViewEngine>();
            ViewEngineResult engine1Result = new ViewEngineResult(new[] { "location1", "location2" });
            engine1.Setup(e => e.FindPartialView(context, "partial", It.IsAny<bool>())).Returns(engine1Result);
            Mock<IViewEngine> engine2 = new Mock<IViewEngine>();
            ViewEngineResult engine2Result = new ViewEngineResult(new[] { "location3", "location4" });
            engine2.Setup(e => e.FindPartialView(context, "partial", It.IsAny<bool>())).Returns(engine2Result);
            viewEngineCollection.Add(engine1.Object);
            viewEngineCollection.Add(engine2.Object);

            // Act
            ViewEngineResult result = viewEngineCollection.FindPartialView(context, "partial");

            // Assert
            Assert.Null(result.View);
            Assert.Equal(4, result.SearchedLocations.Count());
            Assert.True(result.SearchedLocations.Contains("location1"));
            Assert.True(result.SearchedLocations.Contains("location2"));
            Assert.True(result.SearchedLocations.Contains("location3"));
            Assert.True(result.SearchedLocations.Contains("location4"));
        }
Пример #3
0
        public static void NotifyNewComment(int commentId)
        {
            var currentCultureName = Thread.CurrentThread.CurrentCulture.Name;
            if (currentCultureName != "es-ES")
            {
                throw new InvalidOperationException(String.Format("Current culture is {0}", currentCultureName));
            }

            // Prepare Postal classes to work outside of ASP.NET request
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var emailService = new EmailService(engines);

            // Get comment and send a notification.
            using (var db = new MailerDbContext())
            {
                var comment = db.Comments.Find(commentId);

                var email = new NewCommentEmail
                {
                    To = "*****@*****.**",
                    UserName = comment.UserName,
                    Comment = comment.Text
                };

                emailService.Send(email);
            }
        }
Пример #4
0
        public void DefaultConstructor() {
            // Act
            ViewEngineCollection collection = new ViewEngineCollection();

            // Assert
            Assert.AreEqual(0, collection.Count);
        }
 public static void RegisterViewEngines(ViewEngineCollection viewEngines)
 {
     // 清除所有 View Engine
     viewEngines.Clear();
     // 重新註冊 RazorViewEngine,如果你使用的是 WebForm ViewEngine 則是加入 WebFormViewEngine
     viewEngines.Add(new RazorViewEngine());
 }
Пример #6
0
        /// <summary>
        /// Creates a new <see cref="TemplateViewRenderer"/> that uses the given view engines.
        /// </summary>
        /// <param name="viewEngines">The view engines to use when rendering Template views.</param>
        public TemplateViewRenderer(ViewEngineCollection viewEngines)
        {
            if (viewEngines == null) throw new ArgumentNullException(nameof(viewEngines));

            _viewEngines = viewEngines;
            ViewDirectoryName = "Templates";
        }
Пример #7
0
        private static void Main()
        {
            // create the email template
            var template = new EmailTemplate("Test");
            dynamic dtemplate = template;
            dtemplate.To = "*****@*****.**";
            dtemplate.Message = "Hello, non-asp.net world! ";
            dtemplate.Test = "test property";
            dtemplate.SubjectSuffix = DateTime.Now.ToShortTimeString();
            dtemplate.Values = new[] {"one", "two", "three"};
            template.Attach(@"c:\tmp\test2.log");
            template.Attach(@"c:\tmp\cat.jpg", "CatImageId"); // TODO: put in progam folder

            // serialize and deserialize the email template
            var serializerSettings = new JsonSerializerSettings
            {
                Converters = new List<JsonConverter>
                {
                    new AttachmentReadConverter(true)
                }
            };
            var serializedTemplate = JsonConvert.SerializeObject(template, Formatting.Indented, serializerSettings);
            Console.WriteLine(serializedTemplate);
            Console.WriteLine("serialized size: {0}", serializedTemplate.Length);
            var deserializedTemplate = JsonConvert.DeserializeObject<EmailTemplate>(serializedTemplate, serializerSettings);

            // send the email template
            var engines = new ViewEngineCollection
            {
                new ResourceRazorViewEngine(typeof (Program).Assembly, @"ResourceSample.Resources.Views")
            };
            var service = new SmtpMessagingService(engines);
            service.Send(deserializedTemplate);
        }
        public void RegisterViewEngines(ViewEngineCollection engines)
        {
            var sparkViewFactory = new SubFolderSupportedSparkViewFactory();
            sparkViewFactory.AddSubDirectoryViewLocation("PartialViews");

            engines.Add(sparkViewFactory);
        }
Пример #9
0
        public void Send(string content)
        {
            _smtpClient = new SmtpClient(Address, Port);
            _smtpClient.Credentials = new NetworkCredential(Account, Password);
            _smtpClient.EnableSsl = false;
            MailMessage mailMessage = new MailMessage();
            mailMessage.BodyEncoding = Encoding.UTF8;
            mailMessage.From = new MailAddress(From, SenderName, Encoding.UTF8);
            mailMessage.To.Add(To);
            mailMessage.Body = content;
            mailMessage.Subject = Subject;
            _smtpClient.Send(mailMessage);


            dynamic email = new Email("Example");
            email.To = "*****@*****.**";
            email.Send();


            var viewsPath = Path.GetFullPath(@"..\..\Views");

            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var service = new EmailService(engines);
            dynamic email = new Email("Test");

            // Will look for Test.cshtml or Test.vbhtml in Views directory.
            email.Message = "Hello, non-asp.net world!";
            service.Send(email);
           // RESTORE DATABASE is terminating abnormally.
        }
Пример #10
0
 public static PrecompileEngine CreateEngine(ViewEngineCollection engines)
 {
     var en = new PrecompileEngine();
     engines.Insert(0, en);
     VirtualPathFactoryManager.RegisterVirtualPathFactory(en);
     return en;
 }
Пример #11
0
        public static void RegisterViewEngine(ViewEngineCollection engines)
        {
            var sparkSettings = new SparkSettings();

            sparkSettings
                .AddNamespace("System")
                .AddNamespace("System.Collections.Generic")
                .AddNamespace("System.Linq")
                .AddNamespace("System.Web.Mvc")
                .AddNamespace("System.Web.Mvc.Html");

            sparkSettings
                .AddAssembly("Spark.Web.Mvc")
                .AddAssembly("System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35")
                .AddAssembly("System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");

            var builder = new DefaultDescriptorBuilder();
            builder.Filters.Add(new AreaDescriptorFilter());

            var container = SparkEngineStarter.CreateContainer(sparkSettings);
            container.SetServiceBuilder<Spark.Web.Mvc.IDescriptorBuilder>(c => builder);
            SparkEngineStarter.RegisterViewEngine(container);

            engines.Add(new SparkViewFactory(sparkSettings));
        }
    public override void Register(IContainer container, List<SiteRoute> routes, ViewEngineCollection viewEngines, ModelBinderDictionary modelBinders, ICollection<Asset> globalAssets)
    {
      RegisterController<WizardController>(container);

      //RegisterGlobalAsset(globalAssets, "wizard.css");
      RegisterPage(container, new Page("Wizard") //master page
      {
        Assets = new[] { new Asset("wizard.css", WizardAssetGroup) },
        Areas = new[] { "content", "tail" },
        SupportedScopes = SupportedScopes.EntireSite
      });
      RegisterPage(container, new Page("WizardBasicSettings", "Wizard"));
      RegisterPage(container, new Page("WizardComplete", "Wizard"));
      RegisterPage(container, new Page("WizardSetupChoice", "Wizard")
      {
        Areas = new[] { "setupOptions" },
        SupportedScopes = SupportedScopes.EntireSite
      });
      RegisterPage(container, new Page("WizardTestInstall", "Wizard"));
      RegisterPage(container, new Page("WizardThemeChoice", "Wizard"));
      
      this.AddRoute(routes, new SiteRoute() { Name = "Wizard", Route = new Route("Wizard/{action}", 
        new RouteValueDictionary(new { controller = "Wizard" }), new MvcRouteHandler()), Merit = DefaultMerit });

      this.AddRoute(routes, new SiteRoute()
      {
        Name = "WizardCatchAll",
        Route = new Route("{*all}", new RouteValueDictionary(new
          {
            controller = "Wizard",
            action = "CatchAll"
          }), new MvcRouteHandler()),
        Merit = (int)MeritLevel.High + 10000
      });
    }
    public override void Register(IContainer container, List<SiteRoute> routes, ViewEngineCollection viewEngines, ModelBinderDictionary modelBinders, ICollection<Asset> globalAssets)
    {
      container.Configure(x =>
      {
        x.For<IAtomPubService>().Singleton().Add<AtomPubService>();
        
        //this is default controller for all, no name given
        x.For<IController>().Add<AtomPubController>();
      });

      RegisterController<AtomPubController>(container);      
      RegisterRoutes<AtomPubRouteRegistrar>(container, routes);

      //register main site master page
      RegisterPage(container, new Page("Site") 
      { 
        Areas = new[] { "head", "nav", "content", "sidetop", "sidemid", "sidebot", "foot", "tail" },
        SupportedScopes = SupportedScopes.EntireSite | SupportedScopes.Workspace | SupportedScopes.Collection | SupportedScopes.Entry
      });

      //register other pages
      RegisterPage(container, new Page("AtomPubIndex", "Site") 
      { 
        SupportedScopes = SupportedScopes.EntireSite | SupportedScopes.Collection | SupportedScopes.Workspace 
      });
      
      RegisterPage(container, new Page("AtomPubResource", "Site") 
      { 
        SupportedScopes = SupportedScopes.Entry 
      });
    }
Пример #14
0
 static ViewEngines()
 {
     ViewEngineCollection engineCollection = new ViewEngineCollection();
       engineCollection.Add((IViewEngine) new WebFormViewEngine());
       engineCollection.Add((IViewEngine) new RazorViewEngine());
       ViewEngines._engines = engineCollection;
 }
Пример #15
0
        public static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            // Theeming works in combination with IThemeable on the start page to lookup
            // views and resources below /themes/name/ before falling back to root

            // viewEngines.RegisterThemeViewEngine<RazorViewEngine>("~/Themes/");
        }
        public NoMvcViewEngineCollectionExtensions(ViewEngineCollection viewEngineCollection)
        {
            if (viewEngineCollection == null)
                throw new ArgumentNullException("viewEngineCollection");

            _viewEngineCollection = viewEngineCollection;
        }
Пример #17
0
        public static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            var lightweightRazorViewEngine = new LightweightRazorViewEngine();
            viewEngines.Add(lightweightRazorViewEngine);
        }
        public static void RegisterEngines(ViewEngineCollection viewEngines)
        {
            // Removes WebForms view engine - optimization
            viewEngines.Clear();

            // viewEngines.Add(new CustomViewLocationRazorViewEngine());
            viewEngines.Add(new RazorViewEngine());
        }
Пример #19
0
 public static void Initialize(string viewsPath)
 {
     var engines = new ViewEngineCollection
     {
         new FileSystemRazorViewEngine(viewsPath)
     };
     service = new EmailService(engines);
 }
Пример #20
0
        public InlineCSSEmailViewRenderer(ViewEngineCollection viewEngines, Uri url, CSSSource cssSource)
            : base(viewEngines, url)
        {
            if (cssSource == null) throw new ArgumentNullException("cssSource");
            if (cssSource.Rulesets == null) throw new ArgumentNullException("cssSource", "Rulesets cannot be null");

            _cssSource = cssSource;
        }
        public void ViewEngineCollectionProperty() {
            // Arrange
            ViewEngineCollection viewEngineCollection = new ViewEngineCollection();
            ViewResultBaseHelper result = new ViewResultBaseHelper();

            // Act & Assert
            MemberHelper.TestPropertyWithDefaultInstance(result, "ViewEngineCollection", viewEngineCollection);
        }
Пример #22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ControllerContext"/> class.
 /// </summary>
 /// <param name="controller">The controller.</param>
 /// <param name="request">The request.</param>
 /// <param name="viewEngines">The view engines.</param>
 /// <param name="modelBinders"></param>
 /// <param name="releaseCallback">A callback that is invoked when the current request needs to be 
 /// cleaned up.</param>
 public ControllerContext(IController controller, ResolvedNavigationRequest request, ViewEngineCollection viewEngines, ModelBinderDictionary modelBinders, Action releaseCallback)
 {
     this.controller = controller;
     this.request = request;
     this.viewEngines = viewEngines;
     this.modelBinders = modelBinders;
     this.releaseCallback = releaseCallback;
 }
        public void DefaultConstructor()
        {
            // Act
            ViewEngineCollection collection = new ViewEngineCollection();

            // Assert
            Assert.Empty(collection);
        }
Пример #24
0
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            var PMIViewEngine = new PMIViewEngine();

            viewEngines.Add(PMIViewEngine);
        }
    public override void Register(IContainer container, List<SiteRoute> routes, ViewEngineCollection viewEngines, ModelBinderDictionary modelBinders, ICollection<Asset> globalAssets)
    {
      container.Configure(x => x.For<IAnnotateService>().Singleton().Add<AnnotateService>());

      RegisterController<AnnotateController>(container);
      RegisterWidget<AnnotateListWidget>(container);
      RegisterRoutes<AnnotateRouteRegistrar>(container, routes);
    }
Пример #26
0
 public static void RegisterViewEngines(ViewEngineCollection viewEngines)
 {
     viewEngines.Clear();
     viewEngines.Add(new RazorViewEngine());
     viewEngines.Add(new LoggingViewEngine.LoggingViewEngine());
     viewEngines.Add(new PdfViewEngine.PdfViewEngine());
     viewEngines.Add(new MailerViewEngine.MailerViewEngine());
 }
    public override void Register(IContainer container, List<SiteRoute> routes, ViewEngineCollection viewEngines, ModelBinderDictionary modelBinders, ICollection<Asset> globalAssets)
    {
      container.Configure(c => c.For<IRaterService>().Add<RaterService>());

      RegisterController<RaterController>(container);
      RegisterWidget<RaterWidget>(container);
      RegisterRoutes<RaterRouteRegistrar>(container, routes);
    }
        public RegisterViewEnginesTests()
        {
            viewEngine = new Mock<IViewEngine>();
            serviceLocator = new Mock<FakeServiceLocator>();

            viewEngines = new ViewEngineCollection();
            registration = new RegisterViewEngines(viewEngines);
        }
        public virtual void RegisterArea(RouteCollection routes, ViewEngineCollection viewEngines, IEngine engine)
        {
            var route = new ContentRoute<IManagementHomePart>(engine);
            routes.Insert(0, route);

            var viewLocationFormats = new[] { Url.ResolveTokens("{ManagementUrl}/Myself/Analytics/Views/{1}/{0}.ascx"), Url.ResolveTokens("{ManagementUrl}/Myself/Analytics/Views/Shared/{0}.ascx") };
            viewEngines.Insert(0, new PrivateViewEngineDecorator(new WebFormViewEngine { AreaViewLocationFormats = viewLocationFormats, PartialViewLocationFormats = viewLocationFormats }, route));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ControllerRouteCatalog"/> class.
 /// </summary>
 /// <param name="controllerFactory">The controller factory.</param>
 /// <param name="viewActivator">The view activator that is used to instantiate views.</param>
 public ControllerRouteCatalog(IControllerFactory controllerFactory, IViewActivator viewActivator)
 {
     Guard.ArgumentNotNull(controllerFactory, "controllerFactory");
     this.controllerFactory = controllerFactory;
     viewEngines = Framework.ViewEngines.CreateDefaults(viewActivator);
     modelBinders = Framework.ModelBinders.CreateDefaults();
     handler = new ControllerRouteHandler(this.controllerFactory, viewEngines, modelBinders);
 }
Пример #31
0
        public static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            var engine = new PrecompiledMvcEngine(typeof(ViewEngineConfig).Assembly)
            {
                UsePhysicalViewsIfNewer = MvcApplication.DebugEnvironment
            };

            viewEngines.Insert(0, engine);
            VirtualPathFactoryManager.RegisterVirtualPathFactory(engine);
        }
Пример #32
0
        /// <summary>Register the <see cref="ThemeViewEngine"/> which redirects view renderings to a themed counterpart if available.</summary>
        /// <typeparam name="T">The type of view engine to use as base.</typeparam>
        /// <param name="viewEngines">Placeholder.</param>
        /// <returns>The theme view engine that was inserted.</returns>
        public static ThemeViewEngine <T> RegisterThemeViewEngine <T>(this ViewEngineCollection viewEngines, string themeFolderPath = "~/Themes/")
            where T : VirtualPathProviderViewEngine, new()
        {
            Url.SetToken(Url.ThemesUrlToken, themeFolderPath);

            var tve = new ThemeViewEngine <T>(themeFolderPath, new string[] { "cshtml" }, new string[] { "cshtml" });

            viewEngines.Insert(0, tve);
            return(tve);
        }
Пример #33
0
 /// <summary>
 /// 注册视图引擎
 /// </summary>
 public static void RegisterViewEngines(ViewEngineCollection engines)
 {
     engines.Clear();
     //engines.Add(new NVelocityViewEngine());
     //engines.Add(new MicuaRazorViewEngine());
     foreach (var item in ViewEngines)
     {
         engines.Insert(0, item);
     }
 }
        public void EnginesProperty()
        {
            // Act
            ViewEngineCollection collection = ViewEngines.Engines;

            // Assert
            Assert.Equal(2, collection.Count);
            Assert.IsType <WebFormViewEngine>(collection[0]);
            Assert.IsType <RazorViewEngine>(collection[1]);
        }
Пример #35
0
        public void EnginesProperty()
        {
            // Act
            ViewEngineCollection collection = ViewEngines.Engines;

            // Assert
            Assert.AreEqual(2, collection.Count);
            Assert.IsInstanceOfType(collection[0], typeof(WebFormViewEngine), "Collection should have contained a WebFormViewEngine.");
            Assert.IsInstanceOfType(collection[1], typeof(RazorViewEngine), "Collection should have contained a RazorViewEngine.");
        }
Пример #36
0
        /// <summary>Register the <see cref="ThemeViewEngine"/> which redirects view renderings to a themed counterpart if available.</summary>
        /// <typeparam name="T">The type of view engine to use as base.</typeparam>
        /// <param name="viewEngines">Placeholder.</param>
        /// <returns>The theme view engine that was inserted.</returns>
        public static ThemeViewEngine <T> RegisterThemeViewEngine <T>(this ViewEngineCollection viewEngines, string themeFolderPath, string[] fileExtensions, string[] masterExtensions)
            where T : VirtualPathProviderViewEngine, new()
        {
            Url.SetToken(Url.ThemesUrlToken, themeFolderPath);

            var tve = new ThemeViewEngine <T>(themeFolderPath, fileExtensions, masterExtensions);

            viewEngines.Insert(0, tve);
            return(tve);
        }
Пример #37
0
        /// <summary>
        /// Creates the default view engines.
        /// </summary>
        /// <param name="viewActivator">The view activator.</param>
        /// <returns></returns>
        public static ViewEngineCollection CreateDefaults(IViewActivator viewActivator)
        {
            viewActivator = viewActivator ?? new DefaultViewActivator();

            var engines = new ViewEngineCollection();

            engines.Add(new PageViewEngine(viewActivator));
            engines.Add(new WindowViewEngine(viewActivator));
            return(engines);
        }
Пример #38
0
        protected override ViewEngineResult FindView(ControllerContext context)
        {
            ViewEngineResult result = ViewEngineCollection.FindView(context, ViewName, string.Empty);

            if (result.View != null)
            {
                return(result);
            }
            return(null);
        }
Пример #39
0
        public void AddNullViewEngineThrows()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            Assert.ThrowsArgumentNull(
                delegate { collection.Add(null); },
                "item");
        }
Пример #40
0
        /// <summary>
        /// Wraps existing view engines with ViewTrackerRazorEngine.
        /// </summary>
        /// <param name="application">Mvc Application</param>
        /// <param name="viewEngines">View Engines</param>
        public void StartTracking(HttpApplication application, ViewEngineCollection viewEngines)
        {
            _viewUsage = new ConcurrentDictionary <string, ulong>(_directoryHelper
                                                                  .GetFiles(HostingEnvironment.ApplicationPhysicalPath, "*.cshtml", SearchOption.AllDirectories)
                                                                  .ToDictionary(f => f, _ => (ulong)0));
            var engines = viewEngines.Select(v => new ViewTrackerRazorEngine(v, this)).ToList();

            viewEngines.Clear();
            engines.ForEach(viewEngines.Add);
        }
        public static IEmailService Create()
        {
            // Prepare Postal classes to work outside of ASP.NET request
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection {
                new FileSystemRazorViewEngine(viewsPath)
            };

            return(new EmailService(engines));
        }
Пример #42
0
        /// <summary>
        /// Creates a new <see cref="TemplateViewRenderer"/> that uses the given view engines.
        /// </summary>
        /// <param name="viewEngines">The view engines to use when rendering Template views.</param>
        public TemplateViewRenderer(ViewEngineCollection viewEngines)
        {
            if (viewEngines == null)
            {
                throw new ArgumentNullException(nameof(viewEngines));
            }

            _viewEngines      = viewEngines;
            ViewDirectoryName = "Templates";
        }
Пример #43
0
        public void FindPartialViewThrowsIfControllerContextIsNull()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            Assert.ThrowsArgumentNull(
                () => collection.FindPartialView(null, "partial"),
                "controllerContext");
        }
        public static void RegisterViewEngines(ViewEngineCollection engines)
        {
            var engine = new Application.MVCExtensions.Mobile.MobileCapableRazorViewEngine();

            engine.DeviceFolders.Clear();

            engine.MobileOverrideQueryStringParam = "M2W";

            engines.Clear();
            engines.Add(engine);
        }
Пример #45
0
        /// <summary>Creates a new <see cref="SmtpMessagingService" />, using the given view engines.</summary>
        /// <param name="viewEngines">The view engines to use when creating Template views.</param>
        /// <param name="createSmtpClient">
        ///     A function that creates a <see cref="SmtpClient" />. If null, a default creation
        ///     function is used.
        /// </param>
        public SmtpMessagingService(ViewEngineCollection viewEngines, Func <SmtpClient> createSmtpClient = null)
        {
            if (viewEngines == null)
            {
                throw new ArgumentNullException(nameof(viewEngines));
            }

            _renderer       = new TemplateViewRenderer(viewEngines);
            _templateParser = new MailMessageTemplateParser(_renderer);
            _smtpClientFunc = createSmtpClient ?? (() => new SmtpClient());
        }
        /// <summary>
        /// Replaces the engine matching 'T' with the specified one
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="engines"></param>
        /// <param name="replacement"></param>
        public static void ReplaceEngine <T>(this ViewEngineCollection engines, IViewEngine replacement)
            where T : IViewEngine
        {
            var engine = engines.SingleOrDefault(x => x.GetType() == typeof(T));

            if (engine != null)
            {
                engines.Remove(engine);
            }
            engines.Add(replacement);
        }
Пример #47
0
 public static void SetupViewEngines(ViewEngineCollection engines)
 {
     if (engines[0] is WebFormViewEngine)
     {
         engines.RemoveAt(0);                 // WebForm is not used
     }
     foreach (var eng in engines)
     {
         eng.SetupEngineForSite();
     }
 }
Пример #48
0
        public static void RegisterAll(RouteCollection routes, ViewEngineCollection engines)
        {
            StructureMapConfiguration.Register();

            ControllerBuilder.Current.SetControllerFactory(new ControllerFactory());

            RegisterViewEngine(engines);
            RegisterRoutes(routes);

            AreaRegistration.RegisterAllAreas();
        }
Пример #49
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MvcServer"/> class.
        /// </summary>
        public MvcServer()
        {
            _current = this;
            Add(this);
            _viewEngines = new ViewEngineCollection();

            // register built in actions
            _actions.Register(_actionProvider);

            RoutingService = new RoutingService();
        }
Пример #50
0
        public static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            viewEngines.Insert(0, new FrameworkConventionsViewEngine());

            var razorViewEngines = viewEngines.OfType <RazorViewEngine>().Reverse();

            foreach (var razorViewEngine in razorViewEngines)
            {
                viewEngines.Insert(0, new ExperienceEditorViewEngine(razorViewEngine));
            }
        }
Пример #51
0
        public void FindPartialViewThrowsIfPartialViewNameIsNull()
        {
            // Arrange
            ControllerContext    context    = new Mock <ControllerContext>().Object;
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            Assert.ThrowsArgumentNullOrEmpty(
                () => collection.FindPartialView(context, null),
                "partialViewName");
        }
            internal override void RenderPartialInternal(string partialViewName, ViewDataDictionary viewData, object model,
                                                         TextWriter writer, ViewEngineCollection viewEngineCollection)
            {
                RenderPartialInternal_PartialViewName      = partialViewName;
                RenderPartialInternal_ViewData             = viewData;
                RenderPartialInternal_Model                = model;
                RenderPartialInternal_Writer               = writer;
                RenderPartialInternal_ViewEngineCollection = viewEngineCollection;

                writer.Write("This is the result of the view");
            }
Пример #53
0
 public static void RegisterViewEngines(ViewEngineCollection engines)
 {
     engines.RemoveAt(0);
     engines.Add(new NustacheViewEngine
     {
         // Comment out this line to require Model in front of all your expressions.
         // This makes it easier to share templates between the client and server.
         // But it also means that ViewData/ViewBag is inaccessible.
         RootContext = NustacheViewEngineRootContext.Model
     });
 }
Пример #54
0
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            var themeableRazorViewEngine = new ThemeableRazorViewEngine
            {
                CurrentTheme = httpContext => httpContext.Session["theme"] as string ?? string.Empty
            };

            viewEngines.Add(themeableRazorViewEngine);
        }
Пример #55
0
        protected void Send(Email email)
        {
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();

            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var emailService = new EmailService(engines);

            emailService.Send(email);
        }
Пример #56
0
 public void Setup()
 {
     _writer     = new StringWriter();
     _context    = new ViewContext();
     _viewEngine = MockRepository.GenerateMock <IViewEngine>();
     _engines    = new ViewEngineCollection(new List <IViewEngine> {
         _viewEngine
     });
     _context.HttpContext = MvcMockHelpers.DynamicHttpContextBase();
     _renderContext       = new RenderingContext(_writer, _context, _engines);
 }
        public void FindPartialViewThrowsIfPartialViewNameIsEmpty()
        {
            // Arrange
            ControllerContext    context    = new Mock <ControllerContext>().Object;
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            ExceptionHelper.ExpectArgumentExceptionNullOrEmpty(
                () => collection.FindPartialView(context, ""),
                "partialViewName");
        }
        public void FindViewThrowsIfControllerContextIsNull()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            ExceptionHelper.ExpectArgumentNullException(
                () => collection.FindView(null, "view", null),
                "controllerContext"
                );
        }
        public void AddNullViewEngineThrows()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                collection.Add(null);
            },
                "item");
        }
Пример #60
0
        protected override ViewEngineResult FindView(ControllerContext controllerContext)
        {
            var result = ViewEngineCollection.FindView(controllerContext, "RoboFormResult_", null);

            var workContext    = EngineContext.Current.Resolve <IWebWorkContext>();
            var scriptRegister = new ScriptRegister(workContext);
            var styleRegister  = new StyleRegister(workContext);

            GetAdditionalResources(scriptRegister, styleRegister);

            return(result);
        }