// Copied this method from Microsoft.Web.Mvc.dll (MVC Futures)...
        // Microsoft.Web.Mvc.Internal.ExpresisonHelper.AddParameterValuesFromExpressionToDictionary().
        // The only change I made is saving the parameter values to TempData instead
        // of a RouteValueDictionary.
        private IDictionary<string, object> AddParameterValuesFromExpressionToTempData(TempDataDictionary tempData,
                                                                                       MethodCallExpression call)
        {
            ParameterInfo[] parameters = call.Method.GetParameters();
            var parsedParameters = new Dictionary<string, object>();

            if(parameters.Length > 0)
            {
                for(int i = 0; i < parameters.Length; i++)
                {
                    Expression expression = call.Arguments[i];
                    object obj2 = null;
                    ConstantExpression expression2 = expression as ConstantExpression;
                    if(expression2 != null)
                    {
                        obj2 = expression2.Value;
                    }
                    else
                    {
                        Expression<Func<object>> expression3 =
                            Expression.Lambda<Func<object>>(Expression.Convert(expression, typeof(object)),
                                                            new ParameterExpression[0]);
                        obj2 = expression3.Compile()();
                    }

                    tempData[RedirectParameterPrefix + parameters[i].Name] = obj2;
                    parsedParameters.Add(parameters[i].Name, obj2);
                }
            }

            return parsedParameters;
        }
        private void CopyTempDataToModelState(ModelStateDictionary modelState,
                                              TempDataDictionary tempData)
        {
            if (!tempData.ContainsKey(TempDataKey))
            {
                return;
            }

            ModelStateDictionary fromTempData = tempData[TempDataKey]
                                                    as ModelStateDictionary;
            if (fromTempData == null)
            {
                return;
            }

            foreach (KeyValuePair<string, ModelState> pair in fromTempData)
            {
                if (modelState.ContainsKey(pair.Key))
                {
                    modelState[pair.Key].Value = pair.Value.Value;

                    foreach (ModelError error in pair.Value.Errors)
                    {
                        modelState[pair.Key].Errors.Add(error);
                    }
                }
                else
                {
                    modelState.Add(pair.Key, pair.Value);
                }
            }
        }
Beispiel #3
0
        private void CopyTempDataToModelState(ModelStateDictionary modelState, TempDataDictionary tempData)
        {
            if (!tempData.ContainsKey(TempDataKey)) return;

            var fromTempData = tempData[TempDataKey] as ModelStateDictionary;
            if (fromTempData == null) return;

            foreach (var pair in fromTempData)
            {
                if (modelState.ContainsKey(pair.Key))
                {
                    modelState[pair.Key].Value = pair.Value.Value;

                    foreach (var error in pair.Value.Errors)
                    {
                        if (!modelState[pair.Key].Errors.Contains(error))
                            modelState[pair.Key].Errors.Add(error);
                    }
                }
                else
                {
                    modelState.Add(pair.Key, pair.Value);
                }
            }
        }
        public static string RenderPartialToString(this Controller controller, string partialView, ViewDataDictionary viewData, TempDataDictionary tempData)
        {
            ControllerContext controllerContext = controller.ControllerContext;
            var viewEngines = ViewEngines.Engines;
            var viewEngineResult = viewEngines.FindPartialView(controllerContext, partialView + ".js");

            ViewContext viewContext = new ViewContext(controllerContext, viewEngineResult.View, viewData,
                                                      tempData);

            var response = viewContext.HttpContext.Response;
            response.Flush();
            var oldFilter = response.Filter;
            Stream filter = null;
            try
            {
                filter = new MemoryStream();
                response.Filter = filter;
                viewContext.View.Render(viewContext, viewContext.HttpContext.Response.Output);
                response.Flush();
                filter.Position = 0;
                var reader = new StreamReader(filter, response.ContentEncoding);
                return reader.ReadToEnd();
            }
            finally
            {
                if (filter != null)
                {
                    filter.Dispose();
                }
                response.Filter = oldFilter;
            }
        }
        public void SetDisplayModeType(ViewDataDictionary viewData, TempDataDictionary tempData, string displayMode, Type displayModeType)
        {
            var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType);

            Assert.Equal(displayModeType, sut.DisplayModeType);
            Assert.True(sut.HasDisplayMode);
        }
 public void SetModelType(ViewDataDictionary viewData, TempDataDictionary tempData, string displayMode, Type displayModeType)
 {
     var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType);
      
     Assert.Equal(true, sut.IsValid);
     Assert.Equal(typeof(ViewModelSummary), sut.ModelType);
 }
        public void PropertiesAreSet()
        {
            // Arrange
            var mockControllerContext = new Mock<ControllerContext>();
            mockControllerContext.Setup(o => o.HttpContext.Items).Returns(new Hashtable());
            var view = new Mock<IView>().Object;
            var viewData = new ViewDataDictionary();
            var tempData = new TempDataDictionary();
            var writer = new StringWriter();

            // Act
            ViewContext viewContext = new ViewContext(mockControllerContext.Object, view, viewData, tempData, writer);

            // Setting FormContext to null will return the default one later
            viewContext.FormContext = null;

            // Assert
            Assert.Equal(view, viewContext.View);
            Assert.Equal(viewData, viewContext.ViewData);
            Assert.Equal(tempData, viewContext.TempData);
            Assert.Equal(writer, viewContext.Writer);
            Assert.False(viewContext.UnobtrusiveJavaScriptEnabled); // Unobtrusive JavaScript should be off by default
            Assert.NotNull(viewContext.FormContext); // We get the default FormContext
            Assert.Equal("span", viewContext.ValidationSummaryMessageElement); // gen a <span/> by default
            Assert.Equal("span", viewContext.ValidationMessageElement); // gen a <span/> by default
        }
 private static ControllerContext GetControllerContext(TempDataDictionary tempData) {
     return new ControllerContext() {
         Controller = new EmptyController() {
             TempData = tempData
         }
     };
 }
Beispiel #9
0
        public ViewContext(ControllerContext controllerContext, IView view, ViewDataDictionary viewData, TempDataDictionary tempData)
            : base(controllerContext) {
            if (controllerContext == null) {
                throw new ArgumentNullException("controllerContext");
            }
            if (view == null) {
                throw new ArgumentNullException("view");
            }
            if (viewData == null) {
                throw new ArgumentNullException("viewData");
            }
            if (tempData == null) {
                throw new ArgumentNullException("tempData");
            }

            View = view;
            ViewData = viewData;
            TempData = tempData;

            // propagate FormContext, e.g. inside a template
            ViewContext originalViewContext = controllerContext as ViewContext;
            if (originalViewContext != null) {
                FormContext = originalViewContext.FormContext;
            }
        }
        public void GuardClauses()
        {
            // Arrange
            var controllerContext = new Mock<ControllerContext>().Object;
            var view = new Mock<IView>().Object;
            var viewData = new ViewDataDictionary();
            var tempData = new TempDataDictionary();
            var writer = new StringWriter();

            // Act & Assert
            Assert.ThrowsArgumentNull(
                () => new ViewContext(null, view, viewData, tempData, writer),
                "controllerContext"
                );
            Assert.ThrowsArgumentNull(
                () => new ViewContext(controllerContext, null, viewData, tempData, writer),
                "view"
                );
            Assert.ThrowsArgumentNull(
                () => new ViewContext(controllerContext, view, null, tempData, writer),
                "viewData"
                );
            Assert.ThrowsArgumentNull(
                () => new ViewContext(controllerContext, view, viewData, null, writer),
                "tempData"
                );
            Assert.ThrowsArgumentNull(
                () => new ViewContext(controllerContext, view, viewData, tempData, null),
                "writer"
                );
        }
Beispiel #11
0
        public ActionResult Error( TempDataDictionary data )
        {
            List<ModelError> errorList = TempData["errors"] as List<ModelError>;

            ViewBag.Title = "Something went wrong";
            return View( errorList );
        }
        public static string GetViewHtml(string partialViewName, object model)
        {
            //Fake a context
            var context = new ControllerContext();
            context.RouteData = HttpContext.Current.Request.RequestContext.RouteData;
            context.RequestContext = HttpContext.Current.Request.RequestContext;

            ViewEngineResult result = ViewEngines.Engines.FindPartialView(context, partialViewName);

            // Try a regular view if partial not found
            if (result.View == null)
            {
                result = ViewEngines.Engines.FindView(context, partialViewName, "_layout");
            }

            var viewData = new ViewDataDictionary(model);
            var tempData = new TempDataDictionary();

            if (result.View != null)
            {
                var sb = new StringBuilder();
                using (var sw = new StringWriter(sb))
                {
                    using (var output = new HtmlTextWriter(sw))
                    {
                        var viewContext = new ViewContext(context, result.View, viewData, tempData, output);
                        result.View.Render(viewContext, output);
                    }
                }

                return sb.ToString();
            }
            return String.Empty;
        }
        /// <summary>
        /// Renders a partial view to a string in the specified context.
        /// </summary>
        /// <param name="partialViewContext">The partial view context.</param>
        /// <param name="viewModel">The view model.</param>
        /// <param name="cookies">Any cookies that were captures as part of the response.</param>
        /// <returns>The view rendered as a string.</returns>
        public static string ToString(PartialViewContext partialViewContext, object viewModel, out HttpCookieCollection cookies)
        {
            string viewName = partialViewContext.ViewName;

            using (var writer = new StringWriter())
            {
                var httpRequest = new HttpRequest("", "http://www.example.com", "");
                var httpResponse = new HttpResponse(writer);

                // There are still dependencies on HttpContext.Currrent in the ASP.NET (MVC) framework, eg., AntiForgeryRequestToken (as of ASP.NET MVC 4).
                var httpContext = new HttpContext(httpRequest, httpResponse) { User = partialViewContext.User };
                System.Web.HttpContext.Current = httpContext;

                var controllerContext = CreateControllerContext(httpContext);

                var viewEngineResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName);
                if (viewEngineResult == null)
                {
                    string message = "The partial view was not found.";
                    throw new ArgumentException(message, viewName);
                }

                var view = viewEngineResult.View;
                if (view == null)
                {
                    var locations = new StringBuilder();
                    foreach (string searchedLocation in viewEngineResult.SearchedLocations)
                    {
                        locations.AppendLine();
                        locations.Append(searchedLocation);
                    }

                    throw new ArgumentException("The partial view was not found. The following locations were searched: " + locations, viewName);
                }

                try
                {
                    var viewData = new ViewDataDictionary(viewModel);
                    var tempData = new TempDataDictionary();

                    var viewContext = new ViewContextStub(controllerContext, view, viewData, tempData, writer)
                    {
                        ClientValidationEnabled = partialViewContext.ClientValidationEnabled,
                        UnobtrusiveJavaScriptEnabled = partialViewContext.UnobtrusiveJavaScriptEnabled
                    };

                    view.Render(viewContext, httpResponse.Output);
                    cookies = controllerContext.HttpContext.Response.Cookies;

                    httpResponse.Flush();
                }
                finally
                {
                    viewEngineResult.ViewEngine.ReleaseView(controllerContext, view);
                }

                return writer.ToString();
            }
        }
 public ViewContext(ControllerContext context, IView view,
     ViewDataDictionary viewData, TempDataDictionary tempData)
     : this(ViewContext.GetControllerContext(context).Context, 
     GetControllerContext(context).RouteData, 
     GetControllerContext(context).Controller, view, 
     viewData, tempData)
 {
 }
        public void Keep_DoesNotThrowException_WhenDataIsNotLoaded()
        {
            // Arrange
            var tempData = new TempDataDictionary(GetHttpContextAccessor(), new SessionStateTempDataProvider());

            // Act & Assert
            tempData.Keep();
        }
Beispiel #16
0
        protected string PartialViewHtml(string partialViewName, object model, ViewDataDictionary viewData)
        {
            var data = new ViewDataDictionary(viewData) {Model = model};

            var tempData = new TempDataDictionary();

            return RenderPartialToString(this.ControllerContext, partialViewName, data, tempData);
        }
        public void TempDataProperty() {
            // Arrange
            TempDataDictionary newDict = new TempDataDictionary();
            ViewResultBaseHelper result = new ViewResultBaseHelper();

            // Act & Assert
            MemberHelper.TestPropertyWithDefaultInstance(result, "TempData", newDict);
        }
 public Notifications(TempDataDictionary tempDataDictionary)
 {
     if (!tempDataDictionary.ContainsKey(DictionaryName))
     {
         tempDataDictionary[DictionaryName] = new List<Notification>();
     }
     _notifications = tempDataDictionary[DictionaryName] as IList<Notification>;
 }
Beispiel #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FlashStorage"/> class.
        /// </summary>
        /// <param name="backingStore">The backing store.</param>
        public FlashStorage(TempDataDictionary backingStore)
        {
            if (backingStore == null)
            {
                throw new ArgumentNullException("backingStore");
            }

            BackingStore = backingStore;
        }
        private static void AddMessage(TempDataDictionary tempData, AlertType type, string message,
            AlertLocation location)
        {
            var alertData = tempData.InitializeAlertData();

            alertData[location][type].Add(message);

            tempData["AlertData"] = alertData;
        }
        public void GetFlashMessages_returns_a_collection()
        {
            TempDataDictionary tempData = new TempDataDictionary();
            var original = new FlashMessageCollection(tempData);
            original.Add(new FlashMessage("info", "Hello, World!"));

            var flashMessages = tempData.GetFlashMessages();
            Assert.AreEqual(1, flashMessages.Count());
        }
 public ViewContext(HttpContextBase context, RouteData routeData, 
     ControllerBase controller, IView view, ViewDataDictionary viewData, 
     TempDataDictionary tempData)
     : base(context, routeData, controller)
 {
     _view = view;
     _viewData = viewData;
     _tempData = tempData;
 }
        public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id);
        }
 public void SetUp()
 {
     tempData = new TempDataDictionary();
     viewContext = new ViewContext();
     viewContext.TempData = tempData;
     viewDataContainer = new Mock<IViewDataContainer>();
     htmlHelper = new HtmlHelper(viewContext, viewDataContainer.Object);
     flashStorage = new FlashStorage(tempData);
 }
        public void ReturnTempDataKeys(ViewDataDictionary viewData, string displayMode, Type displayModeType)
        {
            var tempData = new TempDataDictionary { { "A", 1 }, { "B", 2 }, { "C", 3 } };

            var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType);

            Assert.Contains("A", sut.TempDataKeys);
            Assert.Contains("B", sut.TempDataKeys);
            Assert.Contains("C", sut.TempDataKeys);
        }
 public void WriteResponse(ControllerContext controllerContext, object content, string viewName)
 {
     var viewEngineResult = ViewEngines.Engines.FindView(controllerContext, viewName, null);
     var textWriter = controllerContext.HttpContext.Response.Output;
     var view = viewEngineResult.View;
     var viewData = new ViewDataDictionary {Model = content};
     var tempData = new TempDataDictionary();
     var viewContext = new ViewContext(controllerContext, view, viewData, tempData, textWriter);
     view.Render(viewContext, textWriter);
 }
        /// <summary>
        /// Checks if the specified key is present in the MVC TempData dictionary.
        /// </summary>
        /// <param name="key">The key to search for.</param>
        /// <param name="tempData">The dictionary to search in.</param>
        /// <returns>True if the specified value is present. Otherwise, false.</returns>
        private static bool CheckIfKeyIsPresentInTempData( string key, TempDataDictionary tempData )
        {
            object tempDataValue;
            tempData.TryGetValue( key, out tempDataValue );

            if( tempDataValue == null ) return false;
            if( (bool)tempDataValue == false ) return false;

            return true;
        }
        public TestViewContext(ControllerContext controllerContext, string viewName, RouteData routeData)
        {
            WriterOutput = new StringBuilder();

            Controller = controllerContext.Controller;
            View = new RazorView(controllerContext, viewName, "Layout", false, new string[] { });
            ViewData = new ViewDataDictionary();
            TempData = new TempDataDictionary();
            Writer = new StringWriter(WriterOutput);
            RouteData = routeData;
        }
        public void ThrowscdException_OnSettingValue_AndWhenSessionIsNotEnabled()
        {
            // Arrange
            var tempData = new TempDataDictionary(GetHttpContextAccessor(), new SessionStateTempDataProvider());

            // Act & Assert
            Assert.Throws<InvalidOperationException>(() =>
            {
                tempData["key1"] = "value1";
            });
        }
        public void TempData_Load_CreatesEmptyDictionaryIfProviderReturnsNull()
        {
            // Arrange
            var tempData = new TempDataDictionary(GetHttpContextAccessor(), new NullTempDataProvider());

            // Act
            tempData.Load();

            // Assert
            Assert.Empty(tempData);
        }
 private static void SetMessage(string index, string message, TempDataDictionary tempData)
 {
     tempData[index] = message;
 }
        /*
         * public static string RenderPartialToString(string controlName, object model)
         * {
         *  var vp = new ViewPage { ViewData = new ViewDataDictionary(model) };
         *
         *  var control = vp.LoadControl(controlName);
         *
         *  vp.Controls.Add(control);
         *
         *  var sb = new StringBuilder();
         *
         *  using (var sw = new StringWriter(sb))
         *  {
         *      using (var tw = new HtmlTextWriter(sw))
         *      {
         *          vp.RenderControl(tw);
         *      }
         *  }
         *
         *  return sb.ToString();
         * }
         */

        public static string RenderPartialToString(ControllerContext context, string partialViewName, ViewDataDictionary viewData, TempDataDictionary tempData)
        {
            //var result = ViewEngines.Engines.FindPartialView(context, "~/Plugins/IUDICO.CourseManagment.dll/IUDICO.CourseManagment/Views/Shared/" + partialViewName +".ascx");
            var result = ViewEngines.Engines.FindPartialView(context, partialViewName);

            if (result.View != null)
            {
                var sb = new StringBuilder();
                using (var sw = new StringWriter(sb))
                {
                    using (var output = new HtmlTextWriter(sw))
                    {
                        var viewContext = new ViewContext(context, result.View, viewData, tempData, output);
                        result.View.Render(viewContext, output);
                    }
                }

                return(sb.ToString());
            }

            return(string.Empty);
        }
 public static void Put <T>(this TempDataDictionary tempData, string key, T value) where T : class
 => tempData[key] = JsonConvert.SerializeObject(value);
Beispiel #34
0
 public static string GetErrorMessage(this TempDataDictionary tempData)
 {
     return((string)tempData[ErrorKey]);
 }
 public AuthenticationTempData(TempDataDictionary tempData)
 {
     _tempData = tempData;
 }
Beispiel #36
0
        public FlashStorage(TempDataDictionary backingStore)
        {
            Check.Require(backingStore != null, "backing store for Flash storage cannot be null", new ArgumentNullException("backingStore"));

            _backingStore = backingStore;
        }
        public HseqRecord PopulateLinkedRecordDefaults(String recordSource, HseqRecord linkedRecord, HseqRecord ncr, TempDataDictionary TempData)
        {
            ncr.HseqRecordID = linkedRecord.HseqRecordID;

            ncr.EnteredBy  = linkedRecord.EnteredBy;
            ncr.ReportedBy = linkedRecord.ReportedBy;
            //ncr.QualityCoordinator = linkedRecord.QualityCoordinator;

            TempData["recordId"]     = linkedRecord.HseqRecordID;
            TempData["recordSource"] = recordSource;

            linkedRecord.LinkedRecords.Add(ncr);

            return(ncr);
        }
 public static void AddErrorMessage(this TempDataDictionary tempData, string message)
 {
     tempData["ErrorMessage"] = message;
 }
        //Function Handles Exception and Logs to Logging Media if Logging is Enabled
        #region Handle Exception And Log

        public override void OnException(ExceptionContext filterContext)
        {
            if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled)
            {
                return;
            }

            if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500)
            {
                return;
            }

            if (!ExceptionType.IsInstanceOfType(filterContext.Exception))
            {
                return;
            }

            FSCErrorInfo objErrorInfo = null;

            // if the request is AJAX return JSON else view.
            if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
            {
                filterContext.Result = new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new
                    {
                        error   = true,
                        message = filterContext.Exception.Message
                    }
                };
            }
            else
            {
                if (filterContext.Exception is HttpAntiForgeryException &&
                    filterContext.Exception.Message.ToLower().StartsWith("the provided anti-forgery token was meant for user \"\", but the current user is"))
                {
                    var controllerName = (string)filterContext.RouteData.Values["controller"];
                    var actionName     = (string)filterContext.RouteData.Values["action"];
                    var model          = new FSCErrorInfo(filterContext.Exception, controllerName, actionName);

                    model.ErrorDate = System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss");
                    model.UserCode  = FSCSecurity.GetUserIdentity();
                    model.IpAdd     = FSCSecurity.GetIPAddress();

                    objErrorInfo = model;

                    var isAjaxCall = string.Equals("XMLHttpRequest", filterContext.HttpContext.Request.Headers["x-requested-with"], StringComparison.OrdinalIgnoreCase);
                    var returnUrl  = !string.IsNullOrWhiteSpace(filterContext.HttpContext.Request["returnUrl"]) ? filterContext.HttpContext.Request["returnUrl"] : "/";
                    var response   = HttpContext.Current.Response;
                    if (isAjaxCall)
                    {
                        response.Clear();
                        response.StatusCode  = 200;
                        response.ContentType = "application/json; charset=utf-8";
                        response.Write(JsonConvert.SerializeObject(new { success = 1, returnUrl = returnUrl }));
                        response.End();
                    }
                    else
                    {
                        response.StatusCode = 200;
                        response.Redirect(returnUrl);
                    }
                }
                else
                {
                    var controllerName = (string)filterContext.RouteData.Values["controller"];
                    var actionName     = (string)filterContext.RouteData.Values["action"];
                    var model          = new FSCErrorInfo(filterContext.Exception, controllerName, actionName);

                    model.ErrorDate = System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss");
                    model.UserCode  = FSCSecurity.GetUserIdentity();
                    model.IpAdd     = FSCSecurity.GetIPAddress();

                    objErrorInfo = model;


                    TempDataDictionary objDataDictionary = new TempDataDictionary();

                    ViewDataDictionary data = filterContext.Controller.ViewData;

                    foreach (string str in data.Keys)
                    {
                        objDataDictionary.Add(str, data[str]);
                    }

                    filterContext.Result = new ViewResult
                    {
                        ViewName   = View,
                        MasterName = Master,
                        ViewData   = new ViewDataDictionary <FSCErrorInfo>(model),
                        TempData   = objDataDictionary
                    };

                    filterContext.ExceptionHandled = true;
                    filterContext.HttpContext.Response.Clear();
                    filterContext.HttpContext.Response.StatusCode             = 500;
                    filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
                }
            }

            if (Convert.ToBoolean(ConfigurationManager.AppSettings["LogErrors"]))
            {
                if (objErrorInfo != null)
                {
                    new FSC_ErrorLog().LogError(new ErrorLogType(), objErrorInfo.ControllerName, objErrorInfo.ActionName, objErrorInfo.Exception.GetType().FullName, objErrorInfo.Exception.Message
                                                , objErrorInfo.ErrorDate, objErrorInfo.UserCode, objErrorInfo.IpAdd);
                }
                else
                {
                    new FSC_ErrorLog().LogError(new ErrorLogType(), filterContext.Controller.ToString(), filterContext.Exception.GetType().FullName, filterContext.Exception.Message
                                                , System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"), FSCSecurity.GetUserIdentity(), FSCSecurity.GetIPAddress());
                }
            }
        }
 public static void AddSuccessMessage(this TempDataDictionary tempData, string message)
 {
     tempData["SuccessMessage"] = message;
 }
Beispiel #41
0
 public static bool ContainsKeyFor <T>(this TempDataDictionary tempData)
 {
     return(tempData.ContainsKey(typeof(T).ToGenericTypeString()));
 }
 private static void RemoveMessage(string index, TempDataDictionary tempData)
 {
     tempData.Remove(index);
 }
Beispiel #43
0
 public static void Put <T>(this TempDataDictionary tempData, T value)
 {
     tempData[typeof(T).ToGenericTypeString()] = value;
 }
Beispiel #44
0
        public static string RenderPartialToString(Controller controller, string partialViewName, object model, ViewDataDictionary viewData, TempDataDictionary tempData)
        {
            ViewEngineResult result = ViewEngines.Engines.FindPartialView(controller.ControllerContext, partialViewName);

            if (result.View != null)
            {
                controller.ViewData.Model = model;
                StringBuilder sb = new StringBuilder();
                using (StringWriter sw = new StringWriter(sb))
                {
                    using (HtmlTextWriter output = new HtmlTextWriter(sw))
                    {
                        ViewContext viewContext = new ViewContext(controller.ControllerContext, result.View, viewData, tempData, output);
                        result.View.Render(viewContext, output);
                    }
                }

                return(sb.ToString());
            }

            return(String.Empty);
        }
Beispiel #45
0
 public static void SetFlag(this TempDataDictionary tempData, string key)
 {
     tempData[key] = true;
 }
Beispiel #46
0
 public static void AddSuccessMessage(this TempDataDictionary tempData, string message)
 {
     tempData[WebConstants.TempDataSuccessMessageKey] = message;
 }
Beispiel #47
0
 public static void SetErrorMessage(this TempDataDictionary tempData, string message)
 {
     tempData[ErrorKey] = message;
 }
Beispiel #48
0
        private async Task RenderToStringAsync(TextWriter writer, string templateName, object model, bool mainPage, bool partial, bool readOnly, object additionalViewData)
        {
            var httpContext = _httpContextAccessor.HttpContext ?? new DefaultHttpContext {
                RequestServices = _serviceProvider
            };
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());

            var newViewData = new ViewDataDictionary <object>(_modelMetadataProvider, new ModelStateDictionary())
            {
                Model = model
            };

            var newTempData = new TempDataDictionary(actionContext.HttpContext, _tempDataProvider);



            if (mainPage || partial)
            {
                var result = _viewEngine.GetView(executingFilePath: null, viewPath: templateName, isMainPage: mainPage);
                if (!result.Success)
                {
                    result = _viewEngine.FindView(actionContext, templateName, isMainPage: mainPage);
                }

                if (!result.Success)
                {
                    throw new Exception($"A view with the name {templateName} could not be found");
                }

                var viewContext = new ViewContext(actionContext, result.View, newViewData, newTempData, writer, ViewOptions.HtmlHelperOptions)
                {
                    ExecutingFilePath = null
                };

                await viewContext.View.RenderAsync(viewContext); //Automatically writes out
            }
            else
            {
                var viewContext = new ViewContext()
                {
                    ExecutingFilePath = null,
                    View                            = null,
                    ViewData                        = newViewData,
                    TempData                        = newTempData,
                    Writer                          = writer,
                    FormContext                     = new FormContext(),
                    ClientValidationEnabled         = ViewOptions.HtmlHelperOptions.ClientValidationEnabled,
                    Html5DateRenderingMode          = ViewOptions.HtmlHelperOptions.Html5DateRenderingMode,
                    ValidationSummaryMessageElement = ViewOptions.HtmlHelperOptions.ValidationSummaryMessageElement,
                    ValidationMessageElement        = ViewOptions.HtmlHelperOptions.ValidationMessageElement,
                    ActionDescriptor                = actionContext.ActionDescriptor,
                    HttpContext                     = actionContext.HttpContext,
                    RouteData                       = actionContext.RouteData
                };

                var htmlHelper = MakeHtmlHelper(viewContext, newViewData);

                if (readOnly)
                {
                    //var htmlContent = htmlHelper.DisplayForModel(additionalViewData);
                    var htmlContent = htmlHelper.Display(null, templateName, null, additionalViewData);
                    htmlContent.WriteTo(writer, HtmlEncoder.Default);
                }
                else
                {
                    //var htmlContent = htmlHelper.EditorForModel(additionalViewData);
                    var htmlContent = htmlHelper.Editor(null, templateName, null, additionalViewData);
                    htmlContent.WriteTo(writer, HtmlEncoder.Default);
                }
            }
        }
Beispiel #49
0
 public static void AddWarningMessage(this TempDataDictionary tempData, string message)
 {
     tempData.Add(GlobalConstants.WariningMessage, message);
 }
Beispiel #50
0
 /// <summary>
 /// Takes the given view and turns the output into a string to be used with Razor, partialviews and Json.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="viewData"></param>
 /// <param name="tempData"></param>
 /// <param name="viewName"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public static string RenderRazorViewToString(ControllerContext context, ViewDataDictionary viewData, TempDataDictionary tempData, string viewName, object model)
 {
     viewData.Model = model;
     using (var sw = new StringWriter())
     {
         var viewResult  = ViewEngines.Engines.FindPartialView(context, viewName);
         var viewContext = new ViewContext(context, viewResult.View, viewData, tempData, sw);
         viewResult.View.Render(viewContext, sw);
         viewResult.ViewEngine.ReleaseView(context, viewResult.View);
         return(sw.GetStringBuilder().ToString());
     }
 }
Beispiel #51
0
        public void Compute_Given_Request_Has_Not_Been_Made_Before_Returns_Object_From_Database(
            string cashFlowDescription
            , double increment
            , double upperBoundDiscountRate
            , double lowerBoundDiscountRate
            , double initialCost
            , string expectedNPVs
            )
        {
            var npvModel = new NPVModel
            {
                CashFlowsDescription = cashFlowDescription
                ,
                Increment = increment
                ,
                InitialCost = initialCost
                ,
                LowerBoundDiscountRate = lowerBoundDiscountRate
                ,
                UpperBoundDiscountRate = upperBoundDiscountRate
            };
            var listOfExpectedNPVs   = expectedNPVs.Split(",").Select(n => double.Parse(n)).ToList();
            var listOfNPVDetailModel = new List <NPVDetailModel>();

            var discountRate = lowerBoundDiscountRate;

            for (var i = 0; i < listOfExpectedNPVs.Count; i++)
            {
                listOfNPVDetailModel.Add(new NPVDetailModel
                {
                    CashFlowSummary = cashFlowDescription
                    ,
                    DiscountRate  = discountRate
                    , InitialCost = initialCost
                    , NPV         = listOfExpectedNPVs[i]
                });
                discountRate += increment;
            }

            var listOfNPVDetailModelStr = JsonConvert.SerializeObject(listOfNPVDetailModel);

            _httpServiceMock.Setup(h => h.GetAsJson <NPVRequestModel>(It.IsAny <string>(), It.IsAny <NPVRequestModel>()))
            .ReturnsAsync(string.Empty);
            _httpServiceMock.Setup(h => h.PostAsyncReturnAsJson(It.IsAny <string>(), It.IsAny <NPVRequestModel>()))
            .ReturnsAsync(listOfNPVDetailModelStr);
            _configurationMock.SetupGet(c => c[It.IsAny <string>()]).Returns("http://localhost:63620/api/npv");
            var httpContext = new DefaultHttpContext();
            var tempData    = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>());


            var controller = new VRTestWeb.Razor.Controllers.NPVController(
                _configurationMock.Object
                , _httpServiceMock.Object
                )
            {
                TempData = tempData
            };

            var response = controller.Compute(npvModel).Result;
            var redirectToActionResult = response as RedirectToActionResult;

            Assert.IsNotNull(redirectToActionResult);
            Assert.AreEqual("Index", redirectToActionResult.ActionName);

            _httpServiceMock.VerifyAll();
            _configurationMock.VerifyAll();
        }
Beispiel #52
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="partialViewName"></param>
        /// <param name="viewData"></param>
        /// <param name="model"></param>
        /// <param name="tempData"></param>
        /// <param name="idMode"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            return(new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id));
        }
 public static T Get <T>(this TempDataDictionary tempData, string key) where T : class
 => tempData.TryGetValue(key, out var o)
         ? JsonConvert.DeserializeObject <T>((string)o)
 : null;
Beispiel #54
0
        public string RenderViewToString(ControllerContext context, string viewName, object model, TempDataDictionary tempData)
        {
            if (string.IsNullOrEmpty(viewName))
            {
                viewName = context.RouteData.GetRequiredString("action");
            }

            ViewDataDictionary viewData = new ViewDataDictionary(model);

            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult  = ViewEngines.Engines.FindPartialView(context, viewName);
                ViewContext      viewContext = new ViewContext(context, viewResult.View, viewData, tempData, sw);
                viewResult.View.Render(viewContext, sw);

                return(sw.GetStringBuilder().ToString());
            }
        }
Beispiel #55
0
 public TempDataWrapper(TempDataDictionary tempData)
 {
     Handle   = Guid.NewGuid();
     TempData = tempData;
 }
 public static void AddDangerMessage(this TempDataDictionary tempData, string message)
 {
     tempData.Add(GlobalConstants.DangerMessage, message);
 }
 public static void SetErrorForDisplay(TempDataDictionary tempData, string errorMessage)
 {
     SetMessage(StatusErrorIndex, errorMessage, tempData);
 }
Beispiel #58
0
 public static bool GetFlag(this TempDataDictionary tempData, string key)
 {
     return(tempData.ContainsKey(key));
 }
Beispiel #59
0
 public static void Put <T>(this TempDataDictionary tempData, string key, T value)
 {
     tempData[key] = value;
 }
Beispiel #60
0
 public static void Keep <T>(this TempDataDictionary tempData)
 {
     tempData.Keep(typeof(T).ToGenericTypeString());
 }