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"));
        }
 static ViewEngines()
 {
     ViewEngineCollection engineCollection = new ViewEngineCollection();
       engineCollection.Add((IViewEngine) new WebFormViewEngine());
       engineCollection.Add((IViewEngine) new RazorViewEngine());
       ViewEngines._engines = engineCollection;
 }
        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);
        }
Пример #4
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());
 }
Пример #5
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 ChildWindowViewEngine(viewActivator));
            return engines;
        }
Пример #6
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);
            }
        }
        public void RegisterViewEngines(ViewEngineCollection engines)
        {
            var sparkViewFactory = new SubFolderSupportedSparkViewFactory();
            sparkViewFactory.AddSubDirectoryViewLocation("PartialViews");

            engines.Add(sparkViewFactory);
        }
        public static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            var lightweightRazorViewEngine = new LightweightRazorViewEngine();
            viewEngines.Add(lightweightRazorViewEngine);
        }
Пример #9
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));
        }
Пример #10
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.
        }
 public static void RegisterViewEngines(ViewEngineCollection viewEngines)
 {
     // 清除所有 View Engine
     viewEngines.Clear();
     // 重新註冊 RazorViewEngine,如果你使用的是 WebForm ViewEngine 則是加入 WebFormViewEngine
     viewEngines.Add(new RazorViewEngine());
 }
Пример #12
0
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            var PMIViewEngine = new PMIViewEngine();

            viewEngines.Add(PMIViewEngine);
        }
        public static void RegisterEngines(ViewEngineCollection viewEngines)
        {
            // Removes WebForms view engine - optimization
            viewEngines.Clear();

            // viewEngines.Add(new CustomViewLocationRazorViewEngine());
            viewEngines.Add(new RazorViewEngine());
        }
        public void CombinesAllErrorsWhenResultIsNotFound()
        {
            var redEngine = new Mock<IViewEngine>();
            var redResult = new ViewEngineResult(false, new[] { "red whatever" });
            redEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns(redResult);

            var blueEngine = new Mock<IViewEngine>();
            var blueResult = new ViewEngineResult(false, new[] { "blue whatever" });
            blueEngine.Setup(x => x.FindView(It.IsAny<ControllerContext>(), It.IsAny<ViewResultOptions>(), It.IsAny<string>())).Returns(blueResult);

            var collection = new ViewEngineCollection();
            collection.Add(redEngine.Object);
            collection.Add(blueEngine.Object);
            var result = collection.FindView(RequestBuilder.CreateRequest().BuildControllerContext(), new ViewResultOptions(), "Foo");
            Assert.IsFalse(result.Success);
            Assert.AreEqual(2, result.SearchLocations.Count());
            Assert.AreEqual("red whatever", result.SearchLocations.ElementAt(0));
            Assert.AreEqual("blue whatever", result.SearchLocations.ElementAt(1));
        }
        public void AddNullViewEngineThrows()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            Assert.ThrowsArgumentNull(
                delegate { collection.Add(null); },
                "item");
        }
        public void SetNullViewEngineThrows()
        {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();
            collection.Add(new Mock<IViewEngine>().Object);

            // Act & Assert
            Assert.ThrowsArgumentNull(
                delegate { collection[0] = null; },
                "item");
        }
Пример #17
0
        public static void RegisterEngines(ViewEngineCollection engines)
        {
            Liquid.UseRubyDateFormat = true;
            Template.RegisterTag<Form>("form");
            Template.RegisterSafeType(typeof(Tag), o => { return o; });

            var filters = new[] { typeof(ModelFilters), typeof(TranslationFilter) };
            var themesPath = ConfigurationManager.AppSettings["ThemeCacheFolder"];
            var viewLocator = new FileThemeViewLocator(themesPath);
            engines.Add(new DotLiquidViewEngine(new DotLiquidFileSystemFactory(viewLocator), viewLocator, filters));
        }
Пример #18
0
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            // We do not need the default view engine
            viewEngines.Clear();

            var templateableRazorViewEngine = new TemplateWebformViewEngine {
                CurrentTemplate = httpContext => httpContext.Request["template"] as string ??  string.Empty
            };

            viewEngines.Add(templateableRazorViewEngine);
        }
Пример #19
0
        public void AddNullViewEngineThrows() {
            // Arrange
            ViewEngineCollection collection = new ViewEngineCollection();

            // Act & Assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                    collection.Add(null);
                },
                "item");
        }
Пример #20
0
        public static void RegisterViewEngines(ViewEngineCollection engines)
        {
            var engine = new MobileCapableWebFormViewEngine();
            engine.DeviceFolders.Clear();
            engine.DeviceFolders.Add("Mozilla", "iPhone");
            engine.DeviceFolders.Add("Safari", "iPhone");
            engine.DeviceFolders.Add("Chrome", "iPhone");

            engines.Clear();
            engines.Add(engine);
        }
        public static void Install(ViewEngineCollection engines)
        {
            if (engines == null)
                throw new ApplicationException("ViewEngines.Engines Found");

            var sparkSettings = GetSparkSettings(Assembly.GetCallingAssembly());
            var sparkViewFactory = new SparkViewFactory(sparkSettings);

            engines.Clear();
            engines.Add(sparkViewFactory);
        }
Пример #22
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
                     });
 }
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            // We do not need the default view engine
            viewEngines.Clear();

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

            viewEngines.Add(themeableRazorViewEngine);
        }
Пример #24
0
        /// <summary>
        /// Updates the view engines collection of the given <paramref name="controller"/> by making the engines aware of the controller's container virtual path.
        /// </summary>
        /// <param name="controller">The controller.</param>
        /// <exception cref="System.ArgumentNullException">controller</exception>
        /// <param name="pathTransformations">Transformations that have to be applied to each view engine search path.</param>
        public static void UpdateViewEnginesCollection(this Controller controller, IList<Func<string, string>> pathTransformations)
        {
            if (controller == null)
                throw new ArgumentNullException("controller");

            var viewEngines = new ViewEngineCollection();
            foreach (var globalEngine in ViewEngines.Engines)
            {
                var vppEngine = globalEngine as VirtualPathProviderViewEngine;
                var newEngine = vppEngine != null ? ControllerExtensions.GetViewEngine(vppEngine, controller, pathTransformations) : globalEngine;
                viewEngines.Add(newEngine);
            }
            controller.ViewEngineCollection = viewEngines;
        }
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            // We do not need the default view engine

            viewEngines.Clear();

            var basePath = ConfigurationManager.AppSettings["ThemeBasePath"];
            var themeName = ConfigurationManager.AppSettings["ThemeName"];

            var theme = new Theme(basePath,themeName);

            var themeableRazorViewEngine = new ThemedRazorViewEngine(theme);

            viewEngines.Add(themeableRazorViewEngine);
        }
        public void SendEmail(EmailModel email)
        {
            string viewsPath = GetEmailsTemplatePath();

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

            Log.Info("Creating email from {0} to {1} with subject {2}", email.From, email.From, email.Subject);
            var service = new EmailService(engines);
            MailMessage data = service.CreateMailMessage(email);

            var emailContent = new Email(email.To, email.From, email.CC, data.Subject, data.Body, data.IsBodyHtml,
                                         email.Type);

            _emailRepository.Save(emailContent);
        }
Пример #27
0
        public static void Configure(ViewEngineCollection viewEngines)
        {
            var settings = new SparkSettings()
                .AddNamespace("System")
                .AddNamespace("System.Collections.Generic")
                .AddNamespace("System.Web.Mvc")
                .AddNamespace("System.Web.Mvc.Html")
                .AddNamespace("Sox.UI")
                .AddNamespace("Sox.UI.Infrastructure")
                .SetPageBaseType("ApplicationViewPage")
                .SetAutomaticEncoding(true);

            settings.SetDebug(true);
            var viewFactory = new SparkViewFactory(settings);
            viewEngines.Add(viewFactory);
        }
Пример #28
0
        // Sending email using postal.mvc5 package
        public void SendEmail(IEnumerable<FileDetail> fileList)
        {
            var viewsPath = Path.GetFullPath(@"..\..\Views\Emails");

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

            var service = new EmailService(engines);

            dynamic email = new Email("FtpFiles");
            email.To = _emailRecipients;
            // Will look for Test.cshtml or Test.vbhtml in Views directory.
            email.Message = "Hello, non-asp.net world!";
            email.FileList = fileList;
            service.Send(email);
        }
Пример #29
0
        public static void RegisterViewEngine(ViewEngineCollection viewEngines)
        {
            //// We do not need the default view engine
            viewEngines.Clear();

            //var adminTemplateRazorViewEngine = new AdminTemplateRazorViewEngine {
            //    CurrentTemplate = httpContext => httpContext.Session["theme"] as string
            //};

            //viewEngines.Add(adminTemplateRazorViewEngine);

            var templateRazorViewEngine = new TemplateRazorViewEngine {
                CurrentTemplate = httpContext => httpContext.Session["theme"] as string
            };

            viewEngines.Add(templateRazorViewEngine);
        }
Пример #30
0
        public static void Configure(ViewEngineCollection engines)
        {
            //engines.Clear();
            var settings = new SparkSettings
                               {
                                   AutomaticEncoding = true,
                                   Debug = true,
                               };

            settings
                .AddAssembly(typeof(LearningTrackerMvcApplication).Assembly.GetName().Name)
                .AddAssembly(typeof(Controller).Assembly.GetName().Name)
                .SetPageBaseType("ApplicationViewPage");
            var viewFactory = new SparkViewFactory(settings);
            PrecompileViews(viewFactory);
            engines.Add(viewFactory);
        }
Пример #31
0
 public static void AddMobile <T>(this ViewEngineCollection ves, Func <ControllerContext, bool> isTheRightDevice, string pathToSearch)
     where T : IViewEngine, new()
 {
     ves.Add(new CustomMobileViewEngine(isTheRightDevice, pathToSearch, new T()));
 }
Пример #32
0
 /// <summary>Adds a view engine that resolves tokens from N2's management path.</summary>
 /// <param name="viewEngines">The view engines to append.</param>
 public static void RegisterTokenViewEngine(this ViewEngineCollection viewEngines)
 {
     viewEngines.Add(new TokenViewEngine());
 }
Пример #33
0
 public static void AddGenericMobile <T>(this ViewEngineCollection ves)
     where T : IViewEngine, new()
 {
     ves.Add(new CustomMobileViewEngine(c => c.IsMobileDevice(), "Mobile", new T()));
 }
Пример #34
0
 public static void Register(ViewEngineCollection viewEngines)
 {
     viewEngines.Add(VoiceViewEngine.Instance);
 }
Пример #35
0
 public static void AddMobile <T>(this ViewEngineCollection ves, string userAgentSubstring, string pathToSearch)
     where T : IViewEngine, new()
 {
     ves.Add(new CustomMobileViewEngine(c => c.UserAgentContains(userAgentSubstring), pathToSearch, new T()));
 }
Пример #36
0
 /// <summary>
 /// 添加视图规则
 /// </summary>
 /// <param name="viewEngineCollection">viewEngineCollection</param>
 internal static void RegisterView(ViewEngineCollection viewEngineCollection)
 {
     viewEngineCollection.Add(new MyViewEngine());
 }
Пример #37
0
 public static void RegisterViewEngines(ViewEngineCollection viewEngineCollection)
 {
     viewEngineCollection.Clear();
     viewEngineCollection.Add(new RazorViewEngine());
 }
Пример #38
0
 public static void AddIPhone <T>(this ViewEngineCollection ves) //specific example helper
     where T : IViewEngine, new()
 {
     ves.Add(new CustomMobileViewEngine(c => c.UserAgentContains("iPhone"), "Mobile/iPhone", new T()));
 }
Пример #39
0
 public static void Register(ViewEngineCollection engines)
 {
     engines.Clear();
     engines.Add(new WcViewEngine());
 }
Пример #40
0
        internal static void RegisterViewEngines(ViewEngineCollection viewEngines)
        {
            viewEngines.Clear();

            viewEngines.Add(new RazorViewEngine());
        }
Пример #41
0
 public static void RegisterViewEngines(ViewEngineCollection viewEngines)
 {
     viewEngines.Clear();
     viewEngines.Add(new CustomViewLocationRazorViewEngine());
 }