Esempio n. 1
0
        public ActionResult Page(string id)
        {
#if PUB
            var page = new PageModelBuilder <PubPage>(_db).GetPage(id);
#elif CMS
            var page = new PageModelBuilder <CmsPage>(_db).GetPage(id);
#endif
            if (page == null)
            {
                throw new HttpException(404, "Page not found");
            }

            var webpartHeaders = new StringBuilder();
            var havingWebPart  = false;

            page.ContentHtml.Content = _pageEngine.ReplaceTokens(
                page: page,
                webpartHeaders: webpartHeaders,
                havingWebPart: out havingWebPart,
                controllerContext: ControllerContext);

            ViewBag.HavingWebPart  = havingWebPart;
            ViewBag.WebpartHeaders = webpartHeaders.ToString();

#if CMS
            ViewBag.AccessMode = SecurityHelper.PageAccessMode(_db, page);
#endif

            ViewBag.NaviNode = page.NaviNode;
            ViewBag.BaseNode = CmsPageBase.FindBaseNode(page);

            var viewHtml = ViewRenderer.RenderViewToString(ControllerContext, "~/Core/Containers/Views/Cms/Page.cshtml", page);
            return(Content(viewHtml, "text/html"));
        }
Esempio n. 2
0
            /// <summary>
            /// Renders a partial MVC view to string. Use this method to render
            /// a partial view that doesn't merge with _Layout and doesn't fire
            /// _ViewStart.
            /// </summary>
            /// <param name="viewPath">
            /// The path to the view to render. Either in same controller, shared by
            /// name or as fully qualified ~/ path including extension
            /// </param>
            /// <param name="model">The model to pass to the viewRenderer</param>
            /// <param name="controllerContext">Active Controller context</param>
            /// <returns>String of the rendered view or null on error</returns>
            public static string RenderView(string viewPath, object model       = null,
                                            ControllerContext controllerContext = null)
            {
                ViewRenderer renderer = new ViewRenderer(controllerContext);

                return(renderer.RenderViewToString(viewPath, model));
            }
Esempio n. 3
0
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            // get rendered HTML from view
            string html     = ViewRenderer.RenderViewToString(context, ViewName, Model);
            var    cssFiles = CssHelper.GetAllCssPaths(html);
            //html = ClearHtmlStrategy.Clear(html);
            // generate the PDF content from HTML
            var pageConfig = PageConfig != null ? PageConfig : PageSize.A4;

            byte[]           content            = HtmlToPdfRenderer.Render(html, cssFiles, pageConfig);
            var              contentDisposition = IsAttachment ? "attachement" : "inline";
            HttpResponseBase response           = context.HttpContext.Response;

            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.ContentType = "application/pdf";
            response.AppendHeader("Content-Disposition", $"{contentDisposition};filename={Filename}.pdf");
            response.AddHeader("Content-Length", content.Length.ToString());
            response.BinaryWrite(content);
            response.OutputStream.Flush();
            response.OutputStream.Close();
            response.End();
        }
        public string RenderView()
        {
            var r = new ViewRenderer();

            return(r.RenderViewToString("~/Views/Utilities/ScriptVariables.cshtml"));

            return(ViewRenderer.RenderView("~/Views/Utilities/ScriptVariables.cshtml"));
        }
Esempio n. 5
0
        public IHttpActionResult SendTestEmail(string email)
        {
            var    renderer = new ViewRenderer();
            string body     = renderer.RenderViewToString("~/Views/Emails/_PreLaunch.cshtml", (object)"DEMO");

            _emailService.Send(email, "iiSnap - Thank you for your interest", body, new string[] { "~/Content/Images/logo.png" });

            return(Ok());
        }
Esempio n. 6
0
        private static string BuildContent(ControllerContext context, string[] parameters)
        {
            var contentId = parameters.Length > 1 ? parameters[1].Trim() : "";

            if (String.IsNullOrEmpty(contentId))
            {
                return("");
            }

            return(ViewRenderer.RenderViewToString(context, "~/Core/views/Content/" + contentId + ".cshtml", null, true));
        }
Esempio n. 7
0
 /// <summary>
 /// Renders a partial MVC view to string. Use this method to render
 /// a partial view that doesn't merge with _Layout and doesn't fire
 /// _ViewStart.
 /// </summary>
 /// <param name="viewPath">
 /// The path to the view to render. Either in same controller, shared by
 /// name or as fully qualified ~/ path including extension
 /// </param>
 /// <param name="model">The model to pass to the viewRenderer</param>
 /// <param name="controllerContext">Active Controller context</param>
 /// <param name="errorMessage">optional out parameter that captures an error message instead of throwing</param>
 /// <returns>String of the rendered view or null on error</returns>
 public static string RenderView(string viewPath, object model,
                                 ControllerContext controllerContext,
                                 out string errorMessage)
 {
     errorMessage = null;
     try
     {
         ViewRenderer renderer = new ViewRenderer(controllerContext);
         return(renderer.RenderViewToString(viewPath, model));
     }
     catch (Exception ex)
     {
         errorMessage = ex.GetBaseException().Message;
     }
     return(null);
 }
Esempio n. 8
0
        private string BuildContent(IPage page, List <Comment> comments, StringBuilder webpartHeaders, ControllerContext context, bool isEditState, bool isPublic)
        {
            var statusString = _context.Parameters.Length > 1 ? _context.Parameters[1].Trim() : "open";
            var status       = statusMapping.ContainsKey(statusString) ? statusMapping[statusString] : true;

            if (!page.Commentable)
            {
                return("");
            }

            if (context == null)
            {
                var controller = ViewRenderer.CreateController <GenericController>();
                context = controller.ControllerContext;
            }
            else
            {
                if (context.Controller.TempData["ViewData"] != null)
                {
                    context.Controller.ViewData = (ViewDataDictionary)context.Controller.TempData["ViewData"];
                }
            }

            var account      = context.HttpContext.User.Identity.Name.ToLower();
            var commentModel = new CommentViewModel
            {
                PageId      = page.Id,
                Url         = page.Url,
                Comments    = comments,
                Status      = status,
                IsEditState = isEditState,
                Email       = GuessEmail(account),
                Name        = GuessName(account).ToUpper()
            };

            context.Controller.ViewBag.RecaptchaSkipValidation = _skipRecaptcha;

            var contentString = ViewRenderer.RenderViewToString(context,
                                                                "~/Areas/Comment/views/Comment/_CommentPartial.cshtml", commentModel, true);

            return(contentString);
        }
Esempio n. 9
0
        public IHttpActionResult Register(PreLaunchRegisterToken token)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    string refCode = _invitationService.AddToList(token.Email, token.Referrer);

                    var    renderer = new ViewRenderer();
                    string body     = renderer.RenderViewToString("~/Views/Emails/_PreLaunch.cshtml", (object)refCode);

                    _emailService.Send(token.Email, "iiSnap - Thank you for your interest", body, new string[] { "~/Content/Images/logo.png" });

                    return(Ok(refCode));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
            }

            return(BadRequest(ModelState));
        }
Esempio n. 10
0
        public async Task <JsonResult> CreateAccount(string id)
        {
            var             userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var             seller      = _sellerService.GetById(id);
            ApplicationUser sellerUser  = await userManager.FindByEmailAsync(seller.email);

            if (sellerUser == null)
            {
                sellerUser = new ApplicationUser {
                    UserName = seller.email, Email = seller.email
                };
                string password = System.Web.Security.Membership.GeneratePassword(10, 0);
                var    result   = await userManager.CreateAsync(sellerUser, password);

                if (result.Succeeded)
                {
                    // Add Seller role
                    result = await userManager.AddToRoleAsync(sellerUser.Id, "Seller");

                    result = await userManager.AddClaimAsync(sellerUser.Id, new System.Security.Claims.Claim("urn:iisnap:name", seller.name));

                    result = await userManager.AddClaimAsync(sellerUser.Id, new System.Security.Claims.Claim("urn:iisnap:seller_id", seller.id));

                    var renderer = new ViewRenderer();
                    var body     = renderer.RenderViewToString("~/Views/Emails/_SellerWelcome.cshtml",
                                                               new SellerWelcomeModel {
                        Email = seller.email, Name = seller.name, Password = password
                    });

                    _emailService.Send(seller.email, "Welcome to iiSnap", body);
                    return(Json(new { result = "User Created" }));
                }
            }

            return(Json(new { error = "User Already Exists" }));
        }
Esempio n. 11
0
 private static string BuildContent(DriverContext context, List <MenuItem> items)
 {
     return(ViewRenderer.RenderViewToString(context.ControllerContext, "~/Areas/NavigationBar/Views/Item/_BarPartial.cshtml", items, true));
 }