Exemplo n.º 1
0
        public DynamicIndexMobileItemViewModel BuildMobileItemViewModel(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper, dynamic item)
        {
            var dynamicIndexMobileItemViewModel = new DynamicIndexMobileItemViewModel();

            dynamicIndexMobileItemViewModel.ShowDelete  = dynamicEntityMetadata.ShowDelete();
            dynamicIndexMobileItemViewModel.ShowEdit    = dynamicEntityMetadata.ShowEdit();
            dynamicIndexMobileItemViewModel.ShowDetails = dynamicEntityMetadata.ShowDetails();
            dynamicIndexMobileItemViewModel.Item        = item;

            IEnumerable <DynamicPropertyIndexViewModel> properties = GetDynamicPropertyViewModels(dynamicEntityMetadata, item);
            var defaultpropertyName    = dynamicEntityMetadata.DefaultProperty().PropertyName();
            var defaultDynamicProperty = properties.SingleOrDefault(x => x.PropertyName == defaultpropertyName);
            var entityName             = dynamicEntityMetadata.TypeName();

            foreach (var dynamicPropertyIndexViewModel in properties.Where(x => x.PropertyName != defaultpropertyName).ToList())
            {
                dynamicIndexMobileItemViewModel.DynamicPropertyIndexViewModels.Add(dynamicPropertyIndexViewModel);
            }

            if (defaultDynamicProperty != null)
            {
                dynamicIndexMobileItemViewModel.DefaultDynamicPropertyViewModel = defaultDynamicProperty;
            }

            dynamicIndexMobileItemViewModel.EntityName = entityName;

            dynamicIndexMobileItemViewModel.TypeName = dynamicEntityMetadata.TypeName();
            var rv = routeValueDictionaryWrapper.Clone();

            rv.SetValue("Id", dynamicEntityMetadata.KeyProperty().GetValueFunction()(item).ToString());
            dynamicIndexMobileItemViewModel.RouteValueDictionaryWrapper = rv;
            return(dynamicIndexMobileItemViewModel);
        }
Exemplo n.º 2
0
        //ToDo:  This logic needs to be moved behind the view so it can be unit tested.
        public static HtmlString DynamicSortNameActionLink(this AjaxHelper helper, string expression, string actionName, string partialActionName, string controllerName, RouteValueDictionaryWrapper routeValueDictionaryWrapper, AjaxOptions options, string sortExpression = null)
        {
            var htmlHelper   = new HtmlHelper(helper.ViewContext, helper.ViewDataContainer);
            var urlHelper    = new UrlHelper(helper.ViewContext.RequestContext);
            var columnHeader = htmlHelper.DisplayName(expression).ToString();

            if (helper.ViewDataContainer.ViewData.Model is DynamicTableHeaderViewModel)
            {
                columnHeader = ((DynamicTableHeaderViewModel)helper.ViewDataContainer.ViewData.Model).DisplayName;
            }

            routeValueDictionaryWrapper = routeValueDictionaryWrapper.Clone();
            if (sortExpression == null)
            {
                sortExpression = expression;
            }
            if (routeValueDictionaryWrapper.ContainsKey("OrderBy") && routeValueDictionaryWrapper.GetValue("OrderBy").ToString() == sortExpression)
            {
                routeValueDictionaryWrapper.SetValue("OrderBy", sortExpression + " descending");
            }
            else
            {
                routeValueDictionaryWrapper.SetValue("OrderBy", sortExpression);
            }

            routeValueDictionaryWrapper.SetValue("Page", 1);
            options.Url = urlHelper.Action(partialActionName, controllerName, routeValueDictionaryWrapper.GetRouteValueDictionary());
            return(helper.ActionLink(columnHeader, actionName, controllerName, routeValueDictionaryWrapper.GetRouteValueDictionary(), options));
        }
Exemplo n.º 3
0
        public string GetReturnUrl(string action, string controllerName, RouteValueDictionaryWrapper routeValueDictionaryWrapper, bool removeNestedReturnUrl = false)
        {
            var routeValueDictionary = routeValueDictionaryWrapper;

            if (removeNestedReturnUrl)
            {
                routeValueDictionary = routeValueDictionaryWrapper.Clone();
                routeValueDictionary.Remove("ReturnUrl");
            }
            return(_urlManager.Url.Action(action, controllerName, routeValueDictionary.GetRouteValueDictionary()));
        }
        public static RouteValueDictionaryWrapper CloneAndAddPage(this RouteValueDictionaryWrapper routeValueDictionaryWrapper, int pagesToAdd)
        {
            var result = routeValueDictionaryWrapper.Clone();
            var page   = int.Parse(result.GetValue("Page").ToString());

            page = page + pagesToAdd;
            if (page < 1)
            {
                page = 1;
            }
            result.SetValue("Page", page);

            return(result);
        }
Exemplo n.º 5
0
        public DynamicIndexItemViewModel BuildItemViewModel(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper, dynamic item)
        {
            var dynamicIndexItemViewModel = new DynamicIndexItemViewModel();

            dynamicIndexItemViewModel.ShowDelete  = dynamicEntityMetadata.ShowDelete();
            dynamicIndexItemViewModel.ShowEdit    = dynamicEntityMetadata.ShowEdit();
            dynamicIndexItemViewModel.ShowDetails = dynamicEntityMetadata.ShowDetails();
            dynamicIndexItemViewModel.Item        = item;
            dynamicIndexItemViewModel.TypeName    = dynamicEntityMetadata.TypeName();
            var rv = routeValueDictionaryWrapper.Clone();

            rv.SetValue("Id", dynamicEntityMetadata.KeyProperty().GetValueFunction()(item).ToString());
            dynamicIndexItemViewModel.RouteValueDictionaryWrapper = rv;

            IEnumerable <DynamicPropertyIndexViewModel> properties = GetDynamicPropertyViewModels(dynamicEntityMetadata, item);

            foreach (var property in properties)
            {
                dynamicIndexItemViewModel.DynamicPropertyIndexViewModels.Add(property);
            }
            return(dynamicIndexItemViewModel);
        }