public override void OnException(ExceptionContext filterContext)
        {

            if (filterContext == null) throw new ArgumentNullException("filterContext");
            if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled) return;
            var exception = filterContext.Exception;
            if (new HttpException(null, exception).GetHttpCode() != 500) return;
            var controllerName = (string)filterContext.RouteData.Values["controller"];
            var actionName = (string)filterContext.RouteData.Values["action"];
            var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
            ActionResult result;
            if (IsJson)
                result = new JsonResult { Data = new { error = filterContext.Exception.Message }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            else {
                var dict = new ViewDataDictionary<HandleErrorInfo>(model);
                if (filterContext.Controller.ViewData.ContainsKey("KatushaUser")) dict.Add("KatushaUser", filterContext.Controller.ViewData["KatushaUser"]);
                if (filterContext.Controller.ViewData.ContainsKey("KatushaProfile")) dict.Add("KatushaProfile", filterContext.Controller.ViewData["KatushaProfile"]);
                dict.Add("HasLayout", HasLayout);
                result = new ViewResult { ViewName = ExceptionView, ViewData = dict, TempData = filterContext.Controller.TempData };
            }
            filterContext.Result = result;
            filterContext.ExceptionHandled = true;
            filterContext.HttpContext.Response.Clear();
            filterContext.HttpContext.Response.StatusCode = 500;
            filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
        }
        public override void OnAuthorization( AuthorizationContext filterContext )
        {
            if ( filterContext == null )
            {
                throw new ArgumentNullException( "filterContext" );
            }

            if ( AuthorizeCore( filterContext.HttpContext ) )
            {
                // ** IMPORTANT **
                // Since we're performing authorization at the action level, the authorization code runs
                // after the output caching module. In the worst case this could allow an authorized user
                // to cause the page to be cached, then an unauthorized user would later be served the
                // cached page. We work around this by telling proxies not to cache the sensitive page,
                // then we hook our custom authorization code into the caching mechanism so that we have
                // the final say on whether a page should be served from the cache.

                HttpCachePolicyBase cachePolicy = filterContext.HttpContext.Response.Cache;
                cachePolicy.SetProxyMaxAge( new TimeSpan( 0 ) );
                cachePolicy.AddValidationCallback( CacheValidateHandler, null /* data */);
            }
            else
            {
                // auth failed, redirect to not authorized page
                ViewDataDictionary viewData = new ViewDataDictionary();
                viewData.Add( "PageTitle", "Not Authorised" );
                viewData.Add( "Message", "Sorry, you do not have sufficient privileges for this operation." );

                filterContext.Result = new ViewResult { ViewName = "NotAuthorised", ViewData = viewData };
                //filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary( new { area = "", controller = "Home" } ) );
            }
        }
 public void BuildViewData(ViewDataDictionary viewDataDictionary, Order order)
 {
     viewDataDictionary.Add("Origins", _originRepository.GetAllOrigins().Select(o => new { Name = o, Value = o }));
     viewDataDictionary.Add("Customer", order.Customer);
     viewDataDictionary.Add("PackageTypes", _packageTypeSelectListBuilder.BuildSelectList());
     viewDataDictionary.Add("Destinations", _destinationRepository.GetAllDestinations().Select(d => new { Name = d, Value = d }));
 }
 /// <summary>
 /// Adds live edit to the web page
 /// Use: @Html.WebBlocksLiveEdit(1055, "Wysiwyg")
 /// </summary>
 /// <param name="html"></param>
 /// <param name="blocksRootNode">Root node id for the blocks</param>
 /// <param name="stylesheetId">The wysiwyg stylesheet for TinyMCE</param>
 /// <returns></returns>
 public static string WebBlocksLiveEdit(this HtmlHelper<RenderModel> html, int blocksRootNode, int stylesheetId)
 {
     ViewDataDictionary viewData = new ViewDataDictionary();
     viewData.Add("wbBlocksRootNode", blocksRootNode);
     viewData.Add("wbStylesheetId", stylesheetId);
     html.RenderPartial("LiveEditRender", null, viewData);
     return "";
 }
Beispiel #5
0
        public static IHtmlContent DropDownListForCategories(this IHtmlHelper helper, string id, string name, List<Category> list, Guid selected)
        {
            ViewDataDictionary vdd = new ViewDataDictionary(helper.ViewContext.ViewData);
            vdd.Add("Selected", selected);
            vdd.Add("Id", id);
            vdd.Add("Name", name);

            return helper.Partial("HtmlHelper/CategoriesList", list, vdd);
        }
        public void Merge_View_Data_Retains_Destination_Values()
        {
            var source = new ViewDataDictionary();
            var dest = new ViewDataDictionary();
            source.Add("Test1", "Test1");
            dest.Add("Test1", "MyValue");
            dest.Add("Test2", "Test2");

            dest.MergeViewDataFrom(source);

            Assert.AreEqual(2, dest.Count);
            Assert.AreEqual("MyValue", dest["Test1"]);
            Assert.AreEqual("Test2", dest["Test2"]);
        }
Beispiel #7
0
        protected new virtual ContentResult View(string viewName, object model = null)
        {
            var controllerContext = this.ControllerContext;
            var result = ViewEngines.Engines.FindView(controllerContext, viewName, null);

            StringWriter output;
            using (output = new StringWriter())
            {
                var dictionary = new ViewDataDictionary(model);

                var dynamic = this.ViewBag as DynamicObject;

                if (dynamic != null)
                {
                    var members = dynamic.GetDynamicMemberNames().ToList();

                    foreach (string member in members)
                    {
                        var value = Versioned.CallByName(dynamic, member, CallType.Get);
                        dictionary.Add(member, value);
                    }
                }


                var viewContext = new ViewContext(controllerContext, result.View, dictionary,
                    controllerContext.Controller.TempData, output);
                result.View.Render(viewContext, output);
                result.ViewEngine.ReleaseView(controllerContext, result.View);
            }

            string html = CdnHelper.UseCdn(output.ToString());
            html = CustomJavascriptInjector.Inject(viewName, html);
            html = MinificationHelper.Minify(html);
            return this.Content(html, "text/html");
        }
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }

            if (AuthorizeCore(filterContext.HttpContext))
            {
                SetCachePolicy(filterContext);
            }
            else if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                // auth failed, redirect to login page
                filterContext.Result = new HttpUnauthorizedResult();
            }
            else if (filterContext.HttpContext.User.IsInRole("SuperUser"))
            {
                // is authenticated and is in the SuperUser role
                SetCachePolicy(filterContext);
            }
            else
            {
                ViewDataDictionary viewData = new ViewDataDictionary();
                viewData.Add("Message", "You do not have sufficient privileges for this operation.");
                filterContext.Result = new ViewResult { MasterName = this.MasterName, ViewName = this.ViewName, ViewData = viewData };
            }
        }
 public void OnAuthorization(AuthorizationContext filterContext)
 {
     if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
     {
         filterContext.Result = new RedirectToRouteResult(
             new RouteValueDictionary
             {
                 { "action","Login"},
                 { "controller","Home"}
             }
             );
         //filterContext.Result = new HttpUnauthorizedResult();
     }
     else
     {
         ViewDataDictionary viewData = new ViewDataDictionary();
         viewData.Add("Message", "You do not have sufficient privileges for this operation.");
         filterContext.Result = new ViewResult
         {
             ViewData = viewData
         };
     }
     //else if (filterContext.HttpContext.User.IsInRole("admin"))
     //{
     //    filterContext.Result = new HttpUnauthorizedResult();
     //}
 }
Beispiel #10
0
 /// <summary>
 /// 设置Controller ViewData
 /// </summary>
 /// <param name="controller"></param>
 /// <param name="Key"></param>
 /// <param name="Value"></param>
 public static ViewDataDictionary SetControllerView(this Controller controller,string Key,string Value)
 {
     //string Name = controller.GetControllerName();
     ViewDataDictionary vDict = new ViewDataDictionary();
     vDict.Add(Key, Value);
     return vDict;
 }
        public void EvalEvaluatesDictionaryThenModel() {
            var obj = new { Foo = "NotBar" };
            ViewDataDictionary vdd = new ViewDataDictionary(obj);
            vdd.Add("Foo", "Bar");

            Assert.AreEqual("Bar", vdd.Eval("Foo"));
        }
        public void EvalWithCompoundExpressionReturnsPropertyOfAddedObject()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo", new { Bar = "Baz" });

            Assert.AreEqual("Baz", vdd.Eval("Foo.Bar"));
        }
        public void EvalWithCompoundExpressionReturnsIndexedValue()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo.Bar", "Baz");

            Assert.AreEqual("Baz", vdd.Eval("Foo.Bar"));
        }
        public void EvalReturnsValueJustAdded()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo", "Blah");

            Assert.AreEqual("Blah", vdd.Eval("Foo"));
        }
        public void EvalWithCompoundIndexAndCompoundExpressionReturnsValue()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo.Bar", new { Baz = new { Blah = "Quux" } });

            Assert.AreEqual("Quux", vdd.Eval("Foo.Bar.Baz.Blah"));
        }
Beispiel #16
0
        public static void CarregarDadosUsuario(ViewDataDictionary viewData)
        {
            if (viewData.ContainsKey("logado"))
                viewData["logado"] = viewData["logado"];
            else
                viewData.Add("logado", false);

            if (viewData.ContainsKey("tipoUsuario"))
                viewData["tipoUsuario"] = viewData["tipoUsuario"];
            else
                viewData.Add("tipoUsuario", "");

            if (viewData.ContainsKey("erroLogin"))
                viewData["erroLogin"] = viewData["erroLogin"];
            else
                viewData.Add("erroLogin", "");
        }
Beispiel #17
0
 /// <summary>
 /// Loads the supplied object to the view data dictionary for use by other partials
 /// </summary>
 public static void RenderPartialWithData(this HtmlHelper htmlHelper, string partialName, string key, object objectToLoad, ViewDataDictionary viewDataDictionary)
 {
     if (!viewDataDictionary.ContainsKey(key))
     {
         viewDataDictionary.Add(key, objectToLoad);
     }
     htmlHelper.RenderPartial(partialName);
 }
        public void EvalWithCompoundIndexExpressionReturnsEval()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo.Bar", new { Baz = "Quux" });

            Assert.AreEqual("Quux", vdd.Eval("Foo.Bar.Baz"));
        }
Beispiel #19
0
        public static void CarregarDadosUsuario(ViewDataDictionary viewData, bool logado, string tipoUsuario, string erroLogin)
        {
            if (viewData.ContainsKey("logado"))
                viewData["logado"] = viewData["logado"];
            else
                viewData.Add("logado", logado);

            if (viewData.ContainsKey("tipoUsuario"))
                viewData["tipoUsuario"] = viewData["tipoUsuario"];
            else
                viewData.Add("tipoUsuario", tipoUsuario);

            if (viewData.ContainsKey("erroLogin"))
                viewData["erroLogin"] = viewData["erroLogin"];
            else
                viewData.Add("erroLogin", erroLogin);
        }
        public void ShouldReportContainsCorrectly()
        {
            var viewData = new ViewDataDictionary();

            viewData.Add(new Url("/2"));

            Assert.That(viewData.Contains <Url>());
            Assert.That(viewData.Contains(typeof(Url)));
        }
Beispiel #21
0
        public PaginatedList(
            List <T> items,
            int count,
            int pageIndex,
            int pageSize,
            ViewDataDictionary viewData,
            int totalPages)
        {
            TotalPages = totalPages;
            PageIndex  = pageIndex;

            viewData.Add(nameof(PageIndex), pageIndex);
            viewData.Add(nameof(TotalPages), TotalPages);
            viewData.Add(nameof(HasPreviousPage), HasPreviousPage);
            viewData.Add(nameof(HasNextPage), HasNextPage);

            this.AddRange(items);
        }
        public IHtmlString GetHtml(Widget widget)
        {
            var viewData = new ViewDataDictionary();

            viewData.Add("CurrentWidget", widget);
            var service = new WidgetService(widget.Site);

            return(_htmlHelper.Partial(service.GetWidgetPath(widget), viewData));
        }
Beispiel #23
0
        public static MvcHtmlString CollectionItemJQueryTemplate <TModel, TCollectionItem>(this HtmlHelper <TModel> html,
                                                                                           string partialViewName,
                                                                                           TCollectionItem modelDefaultValues)
        {
            ViewDataDictionary <TCollectionItem> viewData = new ViewDataDictionary <TCollectionItem>(modelDefaultValues);

            viewData.Add(JQueryTemplatingEnabledKey, true);
            return(html.Partial(partialViewName, modelDefaultValues, viewData));
        }
Beispiel #24
0
        public void InitializeCompanies(ViewDataDictionary viewData, int?companyId)
        {
            var companies = _contactService.GetAll(new ContactFilterOptions()
            {
                Type = ContactType.Company
            });

            viewData.Add("Companies", new SelectList(companies, "ID", "CompanyName", companyId));
        }
        public EmptyResult GetAll(ViewDataDictionary viewData)
        {
            var response = _languageCrud.GetAll();
            var data     = response.Data;

            viewData.Add("Languages", data);

            return(new EmptyResult());
        }
Beispiel #26
0
        public void EvalEvaluatesDictionaryThenModel()
        {
            var obj = new { Foo = "NotBar" };
            ViewDataDictionary vdd = new ViewDataDictionary(obj);

            vdd.Add("Foo", "Bar");

            Assert.Equal("Bar", vdd.Eval("Foo"));
        }
        public void ShouldHandleProxiedObjectsByType()
        {
            var mailMessageStub = MockRepository.GenerateStub<MailMessage>();
            var viewData = new ViewDataDictionary();
            viewData.Add(mailMessageStub);
            var message = viewData.Get<MailMessage>();

            Assert.That(message, Is.EqualTo(mailMessageStub));
        }
Beispiel #28
0
        public override void OnException(ExceptionContext context)
        {
            Log.Error(context.Exception, context.HttpContext.Request.Url.ToString());

            context.ExceptionHandled = true;

            var ViewData = new ViewDataDictionary();

            ViewData.Add("Api", ConfigurationManager.AppSettings["vx.api.url"]);
            ViewData.Add("ErrorMessage", context.Exception.Message);
            ViewData.Add("ErrorStackTrace", context.Exception.StackTrace);

            context.Result = new ViewResult()
            {
                ViewName = "Error",
                ViewData = ViewData,
            };
        }
Beispiel #29
0
 public static MvcHtmlString Td <TModel>(this HtmlHelper <TModel> htmlHelper, Ths ths, int key, string category = null)
 {
     if (ths == Mvc.Ths.Select)
     {
         ViewDataDictionary vd = new ViewDataDictionary();
         vd.Add("category", category);
         return(htmlHelper.Partial(GetTemplateName("td_select"), key, vd));
     }
     throw new NotSupportedException();
 }
        public void ShouldHandleProxiedObjectsByType()
        {
            var mailMessageStub = MockRepository.GenerateStub <MailMessage>();
            var viewData        = new ViewDataDictionary();

            viewData.Add(mailMessageStub);
            var message = viewData.Get <MailMessage>();

            Assert.That(message, Is.EqualTo(mailMessageStub));
        }
        public static ViewDataDictionary ToViewDataDictionary(this IDictionary dictionary)
        {
            var vdd = new ViewDataDictionary();

            if (dictionary != null)
                foreach (var key in dictionary.Keys)
                    vdd.Add(key.ToString(), dictionary[key]);

            return vdd;
        }
        public void ShouldRetrieveSingleObjectByType()
        {
            var viewData = new ViewDataDictionary();
            var url      = new Url("/asdf"); //arbitrary object

            viewData.Add(url);

            Assert.That(viewData.Get <Url>(), Is.EqualTo(url));
            Assert.That(viewData.Get(typeof(Url)), Is.EqualTo(url));
        }
 public static ScriptManager GetFromViewData(ViewDataDictionary viewData)
 {
     var scriptManager = viewData[CURRENT_VIEWDATA_SCRIPT_MANAGER] as ScriptManager;
     if (scriptManager == null)
     {
         scriptManager = new ScriptManager();
         viewData.Add(CURRENT_VIEWDATA_SCRIPT_MANAGER, scriptManager);
     }
     return scriptManager;
 }
        public void BuildViewData(ViewDataDictionary viewDataDictionary)
        {
            var donors = _OrphanService.GetOrphans();//.Where(x => x.IsActive == true);



            var list = donors.Select(ct => new SelectListItem
            {
                Text     = "ID: " + ct.Id + " " + ct.Age + " " + ct.ArGrandFather + " " + " " + ct.ArFatherName + " " + ct.ArFirstName,
                Value    = ct.Id.ToString(),
                Selected = false
            }).ToList();

            viewDataDictionary.Add("OrphansSelectList", list);//.ToList().AsEnumerable()

            List <SelectListItem> yesnoSelectList = new List <SelectListItem>()
            {
                //new SelectListItem {Text = "Unknown", Value = "null"},
                new SelectListItem {
                    Text = "Yes", Value = "true"
                },
                new SelectListItem {
                    Text = "No", Value = "false"
                }
            };

            viewDataDictionary.Add("YesNoSelectList", yesnoSelectList);

            List <SelectListItem> genderSelectList = new List <SelectListItem>()
            {
                new SelectListItem {
                    Text = "Unknown", Value = "null"
                },
                new SelectListItem {
                    Text = "Yes", Value = "true"
                },
                new SelectListItem {
                    Text = "No", Value = "false"
                }
            };

            viewDataDictionary.Add("GenderSelectList", genderSelectList);
        }
Beispiel #35
0
        public void EvalWithCompoundExpressionAndDictionarySubExpressionChoosesDictionaryValue()
        {
            ViewDataDictionary vdd = new ViewDataDictionary();

            vdd.Add("Foo", new Dictionary <string, object> {
                { "Bar", "Baz" }
            });

            Assert.Equal("Baz", vdd.Eval("Foo.Bar"));
        }
        public void ShouldGetObjectBasedOnType()
        {
            var url = new Url("/1");
            var identity = new GenericIdentity("name");

            var viewData = new ViewDataDictionary();
            viewData.Add(identity).Add(url);

            viewData.Get(typeof(MailMessage));
        }
        public static async Task CollectionItemJQueryTemplateAsync <TModel, TCollectionItem>(
            this HtmlHelper <TModel> htmlHelper,
            string partialViewName,
            TCollectionItem model)
        {
            ViewDataDictionary <TCollectionItem> viewData = new ViewDataDictionary <TCollectionItem>(htmlHelper.ViewData, model);

            viewData.Add(JQueryTemplatingEnabledKey, true);
            await htmlHelper.RenderPartialAsync(partialViewName, model, viewData);
        }
        public static ViewDataDictionary ToViewDataDictionary(this object anonymousObject)
        {
            IDictionary <string, object> anonymousDictionary = HtmlHelper.AnonymousObjectToHtmlAttributes(anonymousObject);
            ViewDataDictionary           viewDataDictionary  = new ViewDataDictionary();

            //Copy the anonymous dictionary to the ViewDataDictionary.
            anonymousDictionary.Keys.ForEach(k => viewDataDictionary.Add(k, anonymousDictionary[k]));

            return(viewDataDictionary);
        }
Beispiel #39
0
        public void OnException(ExceptionContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }
            if (!(filterContext.Exception is KatushaNeedsPaymentException))
            {
                return;
            }
            ActionResult result;

            if (IsJson)
            {
                result = new JsonResult {
                    Data = new { error = "NeedsPayment", product = Product.ToString() }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                }
            }
            ;
            else
            {
                var dict = new ViewDataDictionary <ProductNames>(Product);
                if (filterContext.Controller.ViewData.ContainsKey("KatushaUser"))
                {
                    dict.Add("KatushaUser", filterContext.Controller.ViewData["KatushaUser"]);
                }
                if (filterContext.Controller.ViewData.ContainsKey("KatushaProfile"))
                {
                    dict.Add("KatushaProfile", filterContext.Controller.ViewData["KatushaProfile"]);
                }
                dict.Add("HasLayout", HasLayout);
                result = new ViewResult {
                    ViewName = ViewName, ViewData = dict, TempData = filterContext.Controller.TempData
                };
            }

            filterContext.Result           = result;
            filterContext.ExceptionHandled = true;
            filterContext.HttpContext.Response.Clear();
            filterContext.HttpContext.Response.StatusCode             = 200;
            filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
        }
Beispiel #40
0
        public static ScriptManager GetFromViewData(ViewDataDictionary viewData)
        {
            var scriptManager = viewData[CURRENT_VIEWDATA_SCRIPT_MANAGER] as ScriptManager;

            if (scriptManager == null)
            {
                scriptManager = new ScriptManager();
                viewData.Add(CURRENT_VIEWDATA_SCRIPT_MANAGER, scriptManager);
            }
            return(scriptManager);
        }
        public void ShouldGetObjectBasedOnType()
        {
            var url      = new Url("/1");
            var identity = new GenericIdentity("name");

            var viewData = new ViewDataDictionary();

            viewData.Add(identity).Add(url);

            viewData.Get(typeof(MailMessage));
        }
        public void Merge_View_Data()
        {
            var source = new ViewDataDictionary();
            var dest = new ViewDataDictionary();
            source.Add("Test1", "Test1");
            dest.Add("Test2", "Test2");

            dest.MergeViewDataFrom(source);

            Assert.AreEqual(2, dest.Count);
        }
        public static ViewDataDictionary ToViewDataDictionary(this IDictionary dictionary)
        {
            var vdd = new ViewDataDictionary();

            if (dictionary != null)
            {
                dictionary.ForEach((key, value) => vdd.Add(key.ToString(), value));
            }

            return(vdd);
        }
 private void InvalidRequest(AuthorizationContext filterContext, string errorCode, string sMessage, string eMessage)
 {
     if (filterContext.HttpContext.Request.IsAjaxRequest())
     {
         filterContext.Result = new JsonResult
         {
             Data = new { ErrorCode = errorCode, Message = eMessage },
             JsonRequestBehavior = JsonRequestBehavior.AllowGet
         };
     }
     else
     {
         ViewDataDictionary viewData = new ViewDataDictionary();
         viewData.Add("ShortMessage", "Access denied.");
         viewData.Add("Message", "Anti forgery token not found.");
         filterContext.Result = new ViewResult {
             MasterName = "", ViewName = "Error", ViewData = viewData
         };
     }
 }
Beispiel #45
0
        protected override async Task <byte[]> CallTheDriver(ActionContext context)
        {
            // use action name if the view name was not provided
            string viewName = ViewName;

            if (string.IsNullOrEmpty(ViewName))
            {
                viewName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)context.ActionDescriptor).ActionName;
            }

            ViewEngineResult viewResult = GetView(context, viewName, MasterName);
            var html = new StringBuilder();

            //string html = context.GetHtmlFromView(viewResult, viewName, Model);
            ITempDataProvider tempDataProvider = context.HttpContext.RequestServices.GetService(typeof(ITempDataProvider)) as ITempDataProvider;

            var viewDataDictionary = new ViewDataDictionary(
                metadataProvider: new EmptyModelMetadataProvider(),
                modelState: new ModelStateDictionary())
            {
                Model = this.Model
            };

            if (this.ViewData != null)
            {
                foreach (var item in this.ViewData)
                {
                    viewDataDictionary.Add(item);
                }
            }
            using (var output = new StringWriter())
            {
                var view = viewResult.View;
                var tempDataDictionary = new TempDataDictionary(context.HttpContext, tempDataProvider);
                var viewContext        = new ViewContext(
                    context,
                    viewResult.View,
                    viewDataDictionary,
                    tempDataDictionary,
                    output,
                    new HtmlHelperOptions());

                await view.RenderAsync(viewContext);

                html = output.GetStringBuilder();
            }


            string baseUrl       = string.Format("{0}://{1}", context.HttpContext.Request.Scheme, context.HttpContext.Request.Host);
            var    htmlForWkhtml = Regex.Replace(html.ToString(), "<head>", string.Format("<head><base href=\"{0}\" />", baseUrl), RegexOptions.IgnoreCase);

            byte[] fileContent = WkhtmltopdfDriver.ConvertHtml(this.WkhtmlPath, this.GetConvertOptions(), htmlForWkhtml);
            return(fileContent);
        }
 /// <summary>
 /// 重新绑定查询信息到界面
 /// </summary>
 /// <param name="viewData"></param>
 /// <param name="searchCondition"></param>
 public static void ReBindSearchData(this ViewDataDictionary viewData, SearchCondition searchCondition)
 {
     //重新绑定查询信息到界面
     if (searchCondition != null && searchCondition.Items != null && searchCondition.Items.Count > 0)
     {
         foreach (var item in searchCondition.Items)
         {
             viewData.Add(item.Field, item.Value);
         }
     }
 }
Beispiel #47
0
        public void PobierzLokalizacje(string kodPocztowy, ViewDataDictionary viewData)
        {
            var kodPocztowyParam = new SqlParameter
            {
                ParameterName = "@KodPocztowy",
                Value         = kodPocztowy,
                DbType        = DbType.String
            };

            var miasto = new SqlParameter
            {
                ParameterName = "@Miasto",
                DbType        = DbType.String,
                Size          = 30,
                Direction     = ParameterDirection.Output
            };

            var wojewodztwo = new SqlParameter
            {
                ParameterName = "@Wojewodztwo",
                DbType        = DbType.String,
                Size          = 20,
                Direction     = ParameterDirection.Output
            };

            var adres = new SqlParameter
            {
                ParameterName = "@Adres",
                DbType        = DbType.String,
                Size          = 100,
                Direction     = ParameterDirection.Output
            };


            Database.ExecuteSqlCommand("execute PobierzLokalizacje @KodPocztowy, @Miasto OUT, @Wojewodztwo OUT, @Adres OUT",
                                       kodPocztowyParam, miasto, wojewodztwo, adres);

            viewData.Add("Miasto", miasto.Value.ToString());
            viewData.Add("Adres", adres.Value.ToString());
            viewData.Add("Wojewodztwo", wojewodztwo.Value.ToString());
        }
Beispiel #48
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var action = filterContext.RouteData.Values["controller"] + "." + filterContext.RouteData.Values["action"];

            var rad = filterContext.ActionDescriptor as ReflectedActionDescriptor;

            if (rad != null)
            {
                var attr = rad.GetCustomAttributes(true).OfType <ActionSplitterAttribute>().FirstOrDefault();
                if (attr != null)
                {
                    var str = filterContext.HttpContext.Request[attr.RequestKey] ?? filterContext.RouteData.Values[attr.RequestKey];

                    if (str != null)
                    {
                        action += " " + str;
                    }
                }
            }

            ViewDataDictionary viewData = filterContext.Controller.ViewData;

            viewData.Add("elapsed", TimeTracker.Start(action));

            IDisposable profiler = HeavyProfiler.Log("MvcRequest", () => filterContext.HttpContext.Request.Url.PathAndQuery);

            if (profiler != null)
            {
                viewData.Add("profiler", profiler);
            }


            if (ProfilerLogic.SessionTimeout != null)
            {
                IDisposable sessionTimeout = Connector.CommandTimeoutScope(ProfilerLogic.SessionTimeout.Value);
                if (sessionTimeout != null)
                {
                    viewData.Add("sessiontimeout", sessionTimeout);
                }
            }
        }
Beispiel #49
0
        public ActionResult ConvertThisViewToPdf(IFormCollection formCollection)
        {
            // add the custom value to view data
            ViewDataDictionary viewData = new ViewDataDictionary(ViewData);

            viewData.Clear();

            viewData.Add("MyTextValue", formCollection["textBoxText"]);
            viewData.Add("MyDropDownListValue", formCollection["dropDownListValues"]);

            // get the HTML code of this view
            string htmlToConvert = RenderViewAsString("Index", viewData);

            // the base URL to resolve relative images and css
            HttpRequest httpRequest = this.ControllerContext.HttpContext.Request;
            UriBuilder  uriBuilder  = new UriBuilder();

            uriBuilder.Scheme = httpRequest.Scheme;
            uriBuilder.Host   = httpRequest.Host.Host;
            if (httpRequest.Host.Port != null)
            {
                uriBuilder.Port = (int)httpRequest.Host.Port;
            }
            uriBuilder.Path  = httpRequest.PathBase.ToString() + httpRequest.Path.ToString();
            uriBuilder.Query = httpRequest.QueryString.ToString();

            String thisViewUrl = uriBuilder.Uri.AbsoluteUri;
            String baseUrl     = thisViewUrl.Substring(0, thisViewUrl.Length - "ConvertHtmlPreservingState/ConvertThisViewToPdf".Length);

            // instantiate the HiQPdf HTML to PDF converter
            HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

            // render the HTML code as PDF in memory
            byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUrl);

            FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");

            fileResult.FileDownloadName = "ThisViewToPdf.pdf";

            return(fileResult);
        }
        public void Merge(ViewDataDictionary source, ViewDataDictionary destiny)
        {
            Check.Arguments.ThrowIfNull(source, "source");
            Check.Arguments.ThrowIfNull(destiny, "destiny");

            foreach (var entry in destiny)
                if (!source.ContainsKey(entry.Key))
                    source.Add(entry.Key, entry.Value);

            if (destiny.Model != null)
                source.Model = destiny.Model;
        }
 public void OnException(ExceptionContext filterContext)
 {
     if (filterContext == null) throw new ArgumentNullException("filterContext");
     if (!(filterContext.Exception is KatushaNeedsPaymentException)) return;
     ActionResult result;
     if(IsJson)
         result = new JsonResult { Data = new { error = "NeedsPayment", product = Product.ToString() }, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
     else {
         var dict = new ViewDataDictionary<ProductNames>(Product);
         if (filterContext.Controller.ViewData.ContainsKey("KatushaUser")) dict.Add("KatushaUser", filterContext.Controller.ViewData["KatushaUser"]);
         if (filterContext.Controller.ViewData.ContainsKey("KatushaProfile")) dict.Add("KatushaProfile", filterContext.Controller.ViewData["KatushaProfile"]);
         dict.Add("HasLayout", HasLayout);
         result = new ViewResult { ViewName = ViewName, ViewData = dict, TempData = filterContext.Controller.TempData };
     }
     
     filterContext.Result = result;
     filterContext.ExceptionHandled = true;
     filterContext.HttpContext.Response.Clear();
     filterContext.HttpContext.Response.StatusCode = 200;
     filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
 }
Beispiel #52
0
        public void OnException(ExceptionContext filterContext)
        {
            var viewData = new ViewDataDictionary<HandleErrorInfo>();
            viewData.Add("ErrorMessage", filterContext.Exception.Message);

            filterContext.Result = new ViewResult
            {
                ViewName = "Error",
                ViewData = viewData,
                TempData = filterContext.Controller.TempData
            };
            filterContext.ExceptionHandled = true;
        }
 public override void OnAuthorization( AuthorizationContext filterContext )
 {
     if (filterContext == null)
     {
         throw new ArgumentNullException( "filterContext" );
     }
     if (!filterContext.HttpContext.User.IsInRole("user"))
     {
         ViewDataDictionary viewData = new ViewDataDictionary();
         viewData.Add("Message", "You have to make the o login first!");
         filterContext.Result = new ViewResult { ViewName = this.ViewName, ViewData = viewData };
     }
 }
 public static IDictionary<string, object> Extract(this ViewDataDictionary dic, Func<string, bool> predicate)
 {
     if (dic == null)
         return null;
     ViewDataDictionary dic2 = new ViewDataDictionary();
     foreach (var k in dic.Keys)
     {
         if (predicate(k))
         {
             dic2.Add(k.Replace('_', '-'), dic[k]);
         }
     }
     return dic2;
 }
Beispiel #55
0
 public override void OnException(ExceptionContext filterContext)
 {
     //for IIS7
     filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
     var viewdate=new ViewDataDictionary();
     viewdate.Add("ErrorMessage", "处理出错了!请稍候重试");
     if (!filterContext.ExceptionHandled)
     {
         filterContext.Result = new ViewResult
         {
             ViewName = "Error",
             ViewData = viewdate
         };
         filterContext.ExceptionHandled = true;
     }
 }
        private void IsUserAuthorized(AuthorizationContext filterContext)
        {
            if (filterContext.Result == null)
                return;
            if(filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                var vr = new ViewResult();
                vr.ViewName = View;
                ViewDataDictionary dict = new ViewDataDictionary();
                dict.Add("Message", "Sorry you are not Authorized to Perform this Action.");

                vr.ViewData = dict;
                var result = vr;
                filterContext.Result = result;
            }
        }
		public static string RenderPartialViewToString(this Controller controller, string viewName, object model)
		{
			var vd = new ViewDataDictionary();
			foreach (var item in controller.ViewData.Keys)
			{
				vd.Add(item, controller.ViewData[item]);
			}
			vd.Model = model;
			using (var sw = new StringWriter())
			{
				var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
				var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, vd, controller.TempData, sw);
				viewResult.View.Render(viewContext, sw);

				return sw.GetStringBuilder().ToString();
			}
		}
        public static string RenderView(this Controller controller, string viewName, object model, string master = null)
        {
            var vd = new ViewDataDictionary();
            foreach (var item in controller.ViewData.Keys)
            {
                vd.Add(item, controller.ViewData[item]);
            }
            vd.Model = model;
            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindView(controller.ControllerContext, viewName, master);
                ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, vd, controller.TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return m_regex.Replace(sw.GetStringBuilder().ToString(), string.Empty);
            }
        }
        public ContentAreaItemContext(ViewDataDictionary viewData, ContentAreaItem contentAreaItem)
        {
            _viewData = viewData;
            var displayOption = contentAreaItem.LoadDisplayOption() ?? new DisplayOption
                                                                       {
                                                                           Id = Guid.NewGuid().ToString(),
                                                                           Name = "Unknown"
                                                                       };

            if (!_viewData.ContainsKey(Constants.CurrentDisplayOptionKey))
            {
                _viewData.Add(Constants.CurrentDisplayOptionKey, displayOption);
            }
            else
            {
                _viewData[Constants.CurrentDisplayOptionKey] = displayOption;
            }
        }
Beispiel #60
0
        public static MvcHtmlString PartialWithPrefix(this HtmlHelper helper, string viewName, object model, object viewDataAttributes)
        {
            var newviewdata = new ViewDataDictionary(helper.ViewData)
            {
                TemplateInfo = new TemplateInfo()
                {
                    HtmlFieldPrefix = helper.ViewData.TemplateInfo.HtmlFieldPrefix
                }
            };

            foreach (var property in viewDataAttributes.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
            {
                var name = property.Name;
                var value = property.GetValue(viewDataAttributes);

                newviewdata.Add(name, value);
            }

            return helper.Partial(viewName, model, newviewdata);
        }