示例#1
0
 public string PagingMessage(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
 {
     return(string.Format("Showing {0} - {1} of {2}"
                          , RecordStart(routeValueDictionaryWrapper).ToString(CultureInfo.InvariantCulture)
                          , RecordEnd(routeValueDictionaryWrapper).ToString(CultureInfo.InvariantCulture)
                          , RecordCount.ToString(CultureInfo.InvariantCulture)));
 }
示例#2
0
        public override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
        {
            base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
            var dynamicForiegnKeyPropertyMetadata = (DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata;

            string selectedValue = "";

            if (RouteValueDictionaryWrapper.ContainsKey(dynamicPropertyMetadata.PropertyName))
            {
                selectedValue = RouteValueDictionaryWrapper.GetValue(dynamicPropertyMetadata.PropertyName).ToString();
            }

            if (LabelText == PropertyName)
            {
                LabelText = dynamicForiegnKeyPropertyMetadata.ComplexEntityPropertyMetadata.PropertyName;
            }

            Type           = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityType;
            DataTextField  = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.DefaultProperty.PropertyName;
            DataValueField = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.KeyProperty.PropertyName;
            if (controlParameters.ContainsKey("NullText"))
            {
                NullText = controlParameters["NullText"].ToString();
            }
            else
            {
                NullText = "Select Item";
            }
            SelectedValue = selectedValue;

            SelectList = _selectListItemManager.GetSelectListItems(Type, DataValueField, DataTextField, SelectedValue, NullText);
        }
 public DynamicIndexFiltersViewModel(string typeName, RouteValueDictionaryWrapper routeValueDictionaryWrapper, IEnumerable <DynamicFilterViewModel> dynamicFilterViewModels) : this()
 {
     TypeName = typeName;
     RouteValueDictionaryWrapper = routeValueDictionaryWrapper;
     FilterPropertyViewModels    = dynamicFilterViewModels.ToList();
     ShowSearch = FilterPropertyViewModels.Any();
 }
示例#4
0
        public IEnumerable GetItems(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var page     = int.Parse(routeValueDictionaryWrapper.GetValue("Page").ToString());
            var pageSize = int.Parse(routeValueDictionaryWrapper.GetValue("PageSize").ToString());

            return(_dynamicRepository.GetItems(dynamicEntityMetadata.EntityTypeFunction()(), Filters, page, pageSize, _requestManager.OrderBy(), dynamicEntityMetadata.ListIncludes().ToArray()));
        }
 public virtual IQueryable Filter(IQueryable qry)
 {
     if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
     {
         return(qry.DynamicWhere(PropertyName, RouteValueDictionaryWrapper.GetValue(QueryStringName)));
     }
     return(qry);
 }
 public override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
 {
     base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
     if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
     {
         FilterValue = RouteValueDictionaryWrapper.GetValue(QueryStringName).ToString();
     }
 }
示例#7
0
        public void ValidatePagingParameters(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var page = int.Parse(routeValueDictionaryWrapper.GetValue("Page").ToString());

            if (RecordStart(routeValueDictionaryWrapper) > RecordEnd(routeValueDictionaryWrapper) & page > 1)
            {
                routeValueDictionaryWrapper.SetValue("Page", page - 1);
            }
        }
 public DynamicTableHeaderViewModel(DynamicPropertyIndexViewModel dynamicPropertyIndexViewModel, RouteValueDictionaryWrapper routeValueDictionaryWrapper, string typeName)
 {
     DisplayName    = dynamicPropertyIndexViewModel.DisplayName;
     SortExpression = dynamicPropertyIndexViewModel.SortExpression;
     AllowSort      = dynamicPropertyIndexViewModel.AllowSort;
     TypeName       = typeName;
     RouteValueDictionaryWrapper = routeValueDictionaryWrapper;
     ViewModelPropertyName       = dynamicPropertyIndexViewModel.ViewModelPropertyName;
     PropertyName = dynamicPropertyIndexViewModel.PropertyName;
 }
        public static RouteValueDictionaryWrapper Clone(this RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var result = new RouteValueDictionaryWrapper();

            foreach (var kvp in routeValueDictionaryWrapper.GetRouteValueDictionary())
            {
                result.Add(kvp.Key, kvp.Value);
            }
            return(result);
        }
示例#10
0
        private long RecordStart(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            if (RecordCount == 0)
            {
                return(0);
            }
            var page     = int.Parse(routeValueDictionaryWrapper.GetValue("Page").ToString());
            var pageSize = int.Parse(routeValueDictionaryWrapper.GetValue("PageSize").ToString());

            return(page * pageSize - pageSize + 1);
        }
示例#11
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()));
        }
示例#12
0
        private long RecordEnd(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var page     = int.Parse(routeValueDictionaryWrapper.GetValue("Page").ToString());
            var pageSize = int.Parse(routeValueDictionaryWrapper.GetValue("PageSize").ToString());
            var result   = page * (long)pageSize;

            if (result > RecordCount)
            {
                result = RecordCount;
            }
            return(result);
        }
        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);
        }
        public static RouteValueDictionaryWrapper ToRouteValues(this FormCollection formCollection)
        {
            var routeValueDictionaryWrapper = new RouteValueDictionaryWrapper();

            foreach (var key in formCollection.AllKeys)
            {
                if (key == "__RequestVerificationToken")
                {
                    continue;
                }
                routeValueDictionaryWrapper.SetValue(key, formCollection[key]);
            }
            return(routeValueDictionaryWrapper);
        }
        public static RouteValueDictionaryWrapper ToRouteValues(this IDictionary <string, object> queryString)
        {
            if (queryString == null || queryString.Keys.Count == 0)
            {
                return(new RouteValueDictionaryWrapper());
            }
            var routeValueDictionaryWrapper = new RouteValueDictionaryWrapper();

            foreach (string key in queryString.Keys)
            {
                routeValueDictionaryWrapper.Add(key, queryString[key]);
            }

            return(routeValueDictionaryWrapper);
        }
 public override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
 {
     base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
     //set filtervalue if it exists in the route
     if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
     {
         DateTime result;
         if (DateTime.TryParse(RouteValueDictionaryWrapper.GetValue(QueryStringName).ToString(), out result))
         {
             FilterValue = result;
         }
     }
     //set filtervalue to default value if it does not exist in the route
     if (!FilterValue.HasValue && controlParameters.ContainsKey("AddDays") && controlParameters["AddDays"] is int)
     {
         var addDays = (int)controlParameters["AddDays"];
         FilterValue = DateTime.Now.AddDays(addDays);
     }
 }
        public static RouteValueDictionaryWrapper ToRouteValues(this NameValueCollection queryString)
        {
            if (queryString == null || queryString.HasKeys() == false)
            {
                return(new RouteValueDictionaryWrapper());
            }

            if (queryString.AllKeys.Distinct().Count() != queryString.AllKeys.Count())
            {
                throw new Exception("ToRouteValues method was called with duplicate querystring key values");
            }
            var routeValues = new RouteValueDictionaryWrapper();

            foreach (string key in queryString.AllKeys)
            {
                routeValues.Add(key, queryString[key]);
            }

            return(routeValues);
        }
        public string GetFilterMessage(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var sb = new StringBuilder();

            foreach (var filter in GetDynamicFilters(dynamicEntityMetadata, routeValueDictionaryWrapper))
            {
                if (routeValueDictionaryWrapper.ContainsKey(filter.QueryStringName))
                {
                    if (sb.Length == 0)
                    {
                        sb.Append("Filtered By " + filter.PropertyName);
                    }
                    else
                    {
                        sb.Append(", " + filter.PropertyName);
                    }
                }
            }
            return(sb.ToString());
        }
示例#19
0
        public override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
        {
            base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
            var nullText = "Select...";

            if (controlParameters.ContainsKey("NullText"))
            {
                nullText = controlParameters["NullText"].ToString();
            }
            if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
            {
                var origonalValue = RouteValueDictionaryWrapper.GetValue(QueryStringName).ToString();
                //There is an issue with html.checkbox.  It sends down true,false when checked.
                if (origonalValue == "true,false")
                {
                    origonalValue = "true";
                }
                FilterValue = bool.Parse(origonalValue);
            }
            SelectList = _selectListItemManager.GetSelectListItemForBooleanDropDown(FilterValue, nullText);
        }
        public static RouteValueDictionaryWrapper ToRouteValues(this NameValueCollection queryString, Object obj)
        {
            var routeValueDictionaryWrapper = new RouteValueDictionaryWrapper();

            if (queryString != null)
            {
                if (queryString.AllKeys.Distinct().Count() != queryString.AllKeys.Count())
                {
                    throw new Exception("ToRouteValues method was called with duplicate querystring key values");
                }
                foreach (string key in queryString)
                {
                    //values passed in object override those already in collection
                    if (!routeValueDictionaryWrapper.ContainsKey(key))
                    {
                        routeValueDictionaryWrapper.SetValue(key, queryString[key]);
                    }
                }
            }
            return(routeValueDictionaryWrapper);
        }
        public override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
        {
            base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
            if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
            {
                FilterValue = RouteValueDictionaryWrapper.GetValue(QueryStringName).ToString();
            }
            if (!controlParameters.ContainsKey("Type") && !controlParameters.ContainsKey("DisplayMember") && !controlParameters.ContainsKey("ValueMember"))
            {
                //this view model was created from a dynamicforiegnKeyPropertyMetadata
                var dynamicForiegnKeyPropertyMetadata = (DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata;
                Type          = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityType;
                DisplayMember = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.DefaultProperty.PropertyName;
                ValueMember   = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.KeyProperty.PropertyName;

                if (LabelText == PropertyName)
                {
                    LabelText = dynamicForiegnKeyPropertyMetadata.ComplexEntityPropertyMetadata.PropertyName;
                }
            }
            else
            {
                Type          = (Type)controlParameters["Type"];
                DisplayMember = controlParameters["DisplayMember"].ToString();
                ValueMember   = controlParameters["ValueMember"].ToString();
            }

            if (!string.IsNullOrEmpty(FilterValue))
            {
                FilterText = _dynamicMvcManager.GetSelectItemText(Type, FilterValue, DisplayMember);
            }
            else
            {
                FilterText = "";
            }
        }
示例#22
0
        public IDynamicFilter GetDynamicFilter(DynamicFilterUIHintAttribute dynamicFilterUIHintAttribute, DynamicPropertyMetadata dynamicPropertyMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var dynamicFilter = CreateDynamicFilter(dynamicFilterUIHintAttribute.DynamicFilterViewName, dynamicPropertyMetadata, routeValueDictionaryWrapper);

            dynamicFilter.Order = dynamicPropertyMetadata.GetDynamicFilterUIHintAttribute().Order;
            CallViewModelCreated(dynamicFilter, dynamicPropertyMetadata);
            return(dynamicFilter);
        }
 public DynamicEditorHyperlinkViewModel()
 {
     RouteValueDictionaryWrapper = new RouteValueDictionaryWrapper();
 }
示例#24
0
        private IDynamicFilter CreateDynamicFilter(string dynamicFilterViewName, DynamicPropertyMetadata dynamicPropertyMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var dynamicFilter = _dynamicFilters.SingleOrDefault(x => x.DynamicFilterViewName() == dynamicFilterViewName);

            if (dynamicFilter == null)
            {
                throw new Exception("Could not find Dynamic Filter for " + dynamicFilterViewName);
            }

            //ToDo:  this line was added due to unexpected data showing up in routevaluedictionary.
            //prevoius version used activator here.  look into removing this line
            dynamicFilter = _serviceProvider.Resolve <IDynamicFilter>(dynamicFilter.GetType());
            dynamicFilter.PropertyName = dynamicPropertyMetadata.PropertyName();
            dynamicFilter.RouteValueDictionaryWrapper = routeValueDictionaryWrapper;

            return(dynamicFilter);
        }
示例#25
0
        public IDynamicFilter GetDynamicFilter(string dynamicFilterViewName, DynamicPropertyMetadata dynamicPropertyMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var dynamicFilter = CreateDynamicFilter(dynamicFilterViewName, dynamicPropertyMetadata, routeValueDictionaryWrapper);

            CallViewModelCreated(dynamicFilter, dynamicPropertyMetadata);
            return(dynamicFilter);
        }
示例#26
0
 public string PagingMessage(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
 {
     return
         ($"Showing {RecordStart(routeValueDictionaryWrapper).ToString(CultureInfo.InvariantCulture)} - {RecordEnd(routeValueDictionaryWrapper).ToString(CultureInfo.InvariantCulture)} of {RecordCount.ToString(CultureInfo.InvariantCulture)}");
 }
        /// <summary>
        /// Only returns filters that are currently applied for the given routevalueDictionary
        /// </summary>
        /// <param name="dynamicEntityMetadata"></param>
        /// <param name="routeValueDictionaryWrapper"></param>
        /// <returns></returns>
        public IEnumerable <IDynamicFilter> GetDynamicFilters(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var result = new List <IDynamicFilter>();
            var dynamicFilterViewModels = GetFilterPropertyViewModels(dynamicEntityMetadata, routeValueDictionaryWrapper);

            foreach (var dynamicPropertyViewModel in dynamicFilterViewModels)
            {
                var dynamicFilter = dynamicPropertyViewModel.FilterModel;
                //if (dynamicFilter.FilterIsApplied())
                result.Add(dynamicFilter);
            }
            return(result);
        }
        public IEnumerable <DynamicFilterViewModel> GetFilterPropertyViewModels(DynamicEntityMetadata dynamicEntityMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var dynamicFilterViewModels = new List <DynamicFilterViewModel>();

            //add default filters
            foreach (var dynamicPropertyMetadata in dynamicEntityMetadata.DynamicPropertyMetadatas.Where(x => !x.IsDynamicCollection))
            {
                if (dynamicPropertyMetadata.HasDynamicFilterUIAttribute)
                {
                    continue; //explicit filters will be added later
                }
                if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata && !dynamicPropertyMetadata.ListFilterIndexHide)
                {
                    var dynamicPropertyViewModel          = new DynamicFilterViewModel(dynamicPropertyMetadata);
                    var dynamicForiegnKeyPropertyMetadata = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata);
                    var dropdownType = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityType;
                    if (_dynamicRepository.GetItemsCount(dropdownType) > _dynamicMvcManager.Options.DynamicDropDownRecordLimit)
                    {
                        dynamicPropertyViewModel.DynamicFilterViewName = "DynamicFilterAutoComplete";
                    }
                    else
                    {
                        dynamicPropertyViewModel.DynamicFilterViewName = "DynamicFilterDropDown";
                    }

                    dynamicFilterViewModels.Add(dynamicPropertyViewModel);
                }
            }
            //add explicit filters
            foreach (var dynamicPropertyMetadata in dynamicEntityMetadata.DynamicPropertyMetadatas.Where(x => x.HasDynamicFilterUIAttribute))
            {
                var dynamicFilterViewModel       = new DynamicFilterViewModel(dynamicPropertyMetadata);
                var dynamicFilterUIHintAttribute = dynamicPropertyMetadata.GetDynamicFilterUIHintAttribute();
                dynamicFilterViewModel.DynamicFilterViewName = dynamicFilterUIHintAttribute.DynamicFilterViewName;
                dynamicFilterViewModels.Add(dynamicFilterViewModel);
            }
            //add models for any filters
            foreach (var dynamicFilterViewModel in dynamicFilterViewModels)
            {
                var dynamicPropertyMetadata = dynamicEntityMetadata.DynamicPropertyMetadatas.Single(x => x.PropertyName == dynamicFilterViewModel.PropertyName);
                var dynamicFilter           = _dynamicFilterFactory.GetDynamicFilter(dynamicFilterViewModel.DynamicFilterViewName, dynamicPropertyMetadata, routeValueDictionaryWrapper);
                dynamicFilterViewModel.FilterModel = dynamicFilter;
                if (dynamicPropertyMetadata.HasDynamicFilterUIAttribute)
                {
                    dynamicFilterViewModel.FilterModel.Order = dynamicPropertyMetadata.GetDynamicFilterUIHintAttribute().Order;
                }
            }

            dynamicFilterViewModels = dynamicFilterViewModels.OrderBy(x => ((DynamicFilterBaseViewModel)x.FilterModel).Order).ToList();
            return(dynamicFilterViewModels);
        }
示例#29
0
 public string NextClassName(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
 {
     return(RecordCount == RecordEnd(routeValueDictionaryWrapper) ? "next disabled" : "next");
 }
示例#30
0
 public string PreviousClassName(RouteValueDictionaryWrapper routeValueDictionaryWrapper)
 {
     return(int.Parse(routeValueDictionaryWrapper.GetValue("Page").ToString()) == 1 ? "previous disabled" : "previous");
 }