/// <summary>Creates a specific status message</summary> /// <param name="viewName">Name of the view.</param> /// <param name="message">The message to be displayed.</param> /// <param name="status">The general status that is to be set.</param> /// <param name="model">A custom view model that is to be used.</param> /// <remarks>The message and status is ignored if a custom model is passed.</remarks> protected StatusMessageResult StatusMessage(string viewName = "", string message = "", ApplicationStatus status = ApplicationStatus.Ready, StatusViewModel model = null) { if (model == null) model = new StatusViewModel {Status = status, Message = message}; var result = new StatusMessageResult {Model = model}; FindView(viewName, ViewLevel.Normal, result); return result; }
/// <summary>Sets the application status (typically displayed in a status bar).</summary> /// <param name="message">Message that is to be displayed</param> /// <param name="status">Application status</param> /// <param name="model">Application status view model</param> /// <param name="viewName">Name of a custom view to be used by the status.</param> /// <param name="controllerType">Type of the controller (used as a context to find views)</param> public static void Status(string message = "", ApplicationStatus status = ApplicationStatus.Ready, StatusViewModel model = null, string viewName = "", Type controllerType = null) { var context = new RequestContext(new RouteData("StatusMessage", new {viewName = string.Empty})); // If a controller type was specified, we try to use it, which provides a context to find views Controller controller; if (controllerType == null) controller = new Controller(); else controller = Activator.CreateInstance(controllerType) as Controller; if (controller == null) controller = new Controller(); context.ProcessingController = controller; context.Result = controller.StatusMessage(viewName, message, status, model); ExecuteViewHandlers(context); }