protected override void Because()
 {
     _extractedParameters = _parameterNames.Select(parameterName =>
                                                   MvcExpressionHelper.GetParameterValue(
                                                       GetExpression <TestClass>(c => c.Person(_instance1, _instance2)),
                                                       parameterName));
 }
Пример #2
0
        public static RouteValueDictionary GetRouteValueDictionary(this ControllerContext context, string methodName, bool usePostAction)
        {
            var routeValues    = new RouteValueDictionary();
            var controller     = context.Controller;
            var controllerName = MvcExpressionHelper.GetControllerName(controller.GetType());

            routeValues.Add(GridParameters.ControllerKey, controllerName);
            routeValues.Add(GridParameters.ActionKey, methodName);

            var        methods = controller.GetType().GetMethods().Where(m => m.Name == methodName);
            MethodInfo methodInfo;

            if (methods.Count() == 1)
            {
                methodInfo = methods.First();
            }
            else
            {
                methodInfo = methods.First(x => usePostAction
                                                    ? x.GetCustomAttributes(true).OfType <HttpPostAttribute>().Any()
                                                    : !x.GetCustomAttributes(true).OfType <HttpPostAttribute>().Any());
            }

            Requires <ArgumentException> .IsNotNull(methodInfo, string.Format("There's no method {0} in controller {1}", methodName, controllerName));

            foreach (var parameter in methodInfo.GetParameters())
            {
                routeValues.Add(parameter.Name, parameter.ParameterType.IsValueType ? Activator.CreateInstance(parameter.ParameterType) : null);
            }
            return(routeValues);
        }
Пример #3
0
        public GridExcelActionCommandBuilder <T> ExportToPdf <TController>(Expression <Action <TController> > actionResult) where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridExcelActionCommand <T>(Context, GridClass.PdfExport, GridParameters.ExportToPdf, routeValues, null);

            ToolBar.Commands.Add(command);
            return(new GridExcelActionCommandBuilder <T>(command));
        }
Пример #4
0
        public GridCreateActionCommandBuilder <T> Create <TController>(Expression <Action <TController> > actionResult) where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridCreateActionCommand <T>(Context, GridClass.IconAdd, GridParameters.Create, routeValues, null);

            ToolBar.Commands.Add(command);
            return(new GridCreateActionCommandBuilder <T>(command));
        }
Пример #5
0
        public GridActionCommandBuilder <T> ConfirmDelete <TController>(Expression <Action <TController> > actionResult) where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridActionCommand <T>(Context, GridClass.DeleteIcon, GridParameters.Delete, routeValues, new { @class = GridClass.ConfirmDelete });

            Column.Commands.Add(command);
            return(new GridActionCommandBuilder <T>(command));
        }
Пример #6
0
        public GridActionCommandBuilder <T> Custom <TController>(Expression <Action <TController> > actionResult, string cssClass, string altText) where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridActionCommand <T>(Context, cssClass, altText, routeValues, null);

            Column.Commands.Add(command);
            return(new GridActionCommandBuilder <T>(command));
        }
Пример #7
0
        public GridActionCommandBuilder <T> CheckGeo <TController>(Expression <Action <TController> > actionResult, Func <T, bool> hasValueFunc) where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridCheckGeoActionCommand <T>(Context, GridClass.GeoIcon, GridParameters.Geo, routeValues, null, hasValueFunc);

            Column.Commands.Add(command);
            return(new GridActionCommandBuilder <T>(command));
        }
Пример #8
0
        public GridActionCommandBuilder <T> Detail <TController>(Expression <Action <TController> > actionResult, string alternateText = null) where TController : Controller
        {
            var alt         = alternateText ?? GridParameters.Details;
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridActionCommand <T>(Context, GridClass.DetailIcon, alt, routeValues, null);

            Column.Commands.Add(command);
            return(new GridActionCommandBuilder <T>(command));
        }
Пример #9
0
        public GridBoundColumnBuilder <T> CheckEditFor <TController>(string name, Func <T, bool> checkValueFunc, Expression <Action <TController> > actionResult)
            where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var command     = new GridCheckEditActionCommand <T>(GridModel.Context, GridClass.EditIcon, GridParameters.Edit, routeValues, null, m => true, checkValueFunc);
            var column      = new GridCheckEditColumn <T, bool>(GridModel, command, name, checkValueFunc);

            GridModel.ColumnList.Add(column);
            return(new GridBoundColumnBuilder <T>(column));
        }
Пример #10
0
        public GridBoundColumnBuilder <T> ActionLinkFor <TController, TValue>(string name, Func <T, TValue> func, Expression <Action <TController> > actionResult)
            where TController : Controller
        {
            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(actionResult);
            var column      = new GridActionLinkColumn <T, TValue>(GridModel, name, func);

            column.Command = new GridActionLinkCommand <T>(GridModel.Context, routeValues);
            GridModel.ColumnList.Add(column);
            return(new GridBoundColumnBuilder <T>(column));
        }
Пример #11
0
        private void ConvertParameterToFormCollection()
        {
            var parameterNames = MvcExpressionHelper.GetParameterNames(_actionExpression);

            foreach (var parameterName in parameterNames)
            {
                _contextBuilder.SerializeModelToForm(
                    MvcExpressionHelper.GetParameterValue(_actionExpression, parameterName),
                    parameterName);
            }
        }
Пример #12
0
        public GridBoundColumnBuilder <T> EditionStateWithTooltip <TController>(Expression <Action <TController> > toolTipResult)
            where TController : Controller
        {
            Requires <ArgumentException> .IsTrue(typeof(ITrackEdition).IsAssignableFrom(typeof(T)), string.Format("{0} should Implement {1}", typeof(T).Name, typeof(ITrackEdition).Name));

            var routeValues = MvcExpressionHelper.GetRouteValuesFromExpression(toolTipResult);
            var column      = new GridStatusColumn <T>(GridModel, routeValues);

            GridModel.ColumnList.Add(column);
            return(new GridBoundColumnBuilder <T>(column));
        }
Пример #13
0
        public object Execute()
        {
            ConvertParameterToFormCollection();

            var controllerContext = new ControllerContext(_contextBuilder, _controller);

            _controller.ControllerContext = controllerContext;

            var actionName = MvcExpressionHelper.GetMemberName(_actionExpression);

            _contextBuilder.RouteData.Values["action"]     = actionName;
            _contextBuilder.RouteData.Values["controller"] = GetControllerName();

            _actionInvoker.InvokeAction(controllerContext, actionName);

            return(_actionInvoker.Result);
        }
 protected override void Because()
 {
     _result = MvcExpressionHelper.GetParameterNames(GetExpression <TestClass, ActionResult>(c => c.Index()));
 }
 protected override void Because()
 {
     _result = MvcExpressionHelper.GetMemberName(GetExpression <TestClass>(c => c.Create()));
 }
 protected override void Because()
 {
     _result = MvcExpressionHelper.GetMemberName(GetExpression <TestClass, ActionResult>(c => c.Index(3, 2, 1)));
 }
 protected override void Because()
 {
     _result1 = MvcExpressionHelper.GetParameterValue(
         GetExpression <TestClass>(c => c.Date(new DateTime(2010, 07, 05))),
         "dateTime");
 }
Пример #18
0
 private static string ItemNameForControllerType(Type controller)
 {
     return(ItemNameForElement(controller.Assembly.GetName().Name, MvcExpressionHelper.GetControllerName(controller)));
 }
 protected override void Because()
 {
     _parameterValues = _parameterNames.Select(parameterName =>
                                               MvcExpressionHelper.GetParameterValue(GetExpression <TestClass, ActionResult>(c => c.Index(3, 2, 1)),
                                                                                     parameterName));
 }