Beispiel #1
0
        public IDynamicFilter GetDynamicFilter(string dynamicFilterViewName, DynamicPropertyMetadata dynamicPropertyMetadata, RouteValueDictionaryWrapper routeValueDictionaryWrapper)
        {
            var dynamicFilter = CreateDynamicFilter(dynamicFilterViewName, dynamicPropertyMetadata, routeValueDictionaryWrapper);

            CallViewModelCreated(dynamicFilter, dynamicPropertyMetadata);
            return(dynamicFilter);
        }
Beispiel #2
0
        public DynamicPropertyIndexViewModel BuildDynamicPropertyIndexViewModel(DynamicPropertyMetadata dynamicPropertyMetadata)
        {
            var dynamicPropertyIndexViewModel = new DynamicPropertyIndexViewModel(dynamicPropertyMetadata);

            if (dynamicPropertyMetadata.DataType() == DataType.Password)
            {
                return(null);
            }
            dynamicPropertyIndexViewModel.AllowSort = dynamicPropertyMetadata.AllowSort();

            if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata)
            {
                dynamicPropertyIndexViewModel.ViewModelPropertyName = "Item." + dynamicPropertyMetadata.PropertyName();
                //ToDo:  This logic could probably be pushed back to a lower level
                if (dynamicPropertyMetadata.DisplayName() == dynamicPropertyMetadata.PropertyName())
                {
                    dynamicPropertyIndexViewModel.DisplayName = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.PropertyName();
                }

                dynamicPropertyIndexViewModel.SortExpression  = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.PropertyName() + "." + ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.DefaultProperty().PropertyName();
                dynamicPropertyIndexViewModel.PartialViewName = "_DynamicDisplayHyperlink";
            }
            else if (dynamicPropertyMetadata.IsSimple())
            {
                dynamicPropertyIndexViewModel.ViewModelPropertyName = "Item." + dynamicPropertyMetadata.PropertyName();
                dynamicPropertyIndexViewModel.PartialViewName       = "_DynamicDisplay";
            }
            else if (dynamicPropertyMetadata.IsDynamicCollection())
            {
                dynamicPropertyIndexViewModel.ViewModelPropertyName = "Item." + dynamicPropertyMetadata.PropertyName();
                dynamicPropertyIndexViewModel.PartialViewName       = "_DynamicDisplayHyperlink";
            }
            return(dynamicPropertyIndexViewModel);
        }
Beispiel #3
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 override void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
 {
     base.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
     if (RouteValueDictionaryWrapper.ContainsKey(QueryStringName))
     {
         FilterValue = RouteValueDictionaryWrapper.GetValue(QueryStringName).ToString();
     }
 }
Beispiel #5
0
        private void CallViewModelCreated(IDynamicFilter dynamicFilter, DynamicPropertyMetadata dynamicPropertyMetadata)
        {
            var controlParameters = (IDictionary <string, object>) new Dictionary <string, object>();

            if (dynamicPropertyMetadata.HasDynamicFilterUIAttribute())
            {
                controlParameters = dynamicPropertyMetadata.GetDynamicFilterUIHintAttribute().ControlParameters;
            }

            dynamicFilter.ViewModelCreated(dynamicPropertyMetadata, controlParameters);
        }
        public virtual void ViewModelCreated(DynamicPropertyMetadata dynamicPropertyMetadata, IDictionary <string, object> controlParameters)
        {
            LabelText       = dynamicPropertyMetadata.DisplayName();
            QueryStringName = PropertyName;
            if (controlParameters.ContainsKey("QueryStringName"))
            {
                QueryStringName = controlParameters["QueryStringName"].ToString();
            }

            if (controlParameters.ContainsKey("LabelText"))
            {
                LabelText = controlParameters["LabelText"].ToString();
            }
        }
        public void Build(DynamicPropertyMetadata dynamicPropertyMetadata, DynamicPropertyEditorViewModel dynamicPropertyViewModel, dynamic item)
        {
            var dynamicForiegnKeyPropertyMetadata = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata);
            var type           = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityTypeFunction()();
            var dataTextField  = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.DefaultProperty().PropertyName();
            var dataValueField = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.KeyProperty().PropertyName();
            var dynamicEditorDropDownViewModel = new DynamicEditorDropDownViewModel(dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityTypeFunction()(), dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.DefaultProperty().PropertyName(), dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.KeyProperty().PropertyName());
            var value = dynamicPropertyMetadata.GetValueFunction()(item);

            dynamicEditorDropDownViewModel.SelectListItems = _selectListItemManager.GetSelectListItems(type, dataValueField, dataTextField, value);

            dynamicPropertyViewModel.DynamicEditorDropDownViewModel = dynamicEditorDropDownViewModel;

            dynamicPropertyViewModel.DisplayName = dynamicForiegnKeyPropertyMetadata.ComplexEntityPropertyMetadata.PropertyName();
        }
Beispiel #8
0
        public void Build(DynamicPropertyMetadata dynamicPropertyMetadata, DynamicPropertyEditorViewModel dynamicPropertyViewModel, dynamic item)
        {
            var dynamicForiegnKeyPropertyMetadata  = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata);
            var dynamicEditorAutoCompleteViewModel = new DynamicEditorAutoCompleteViewModel();
            var type          = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityType;
            var dataTextField = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.DefaultProperty.PropertyName;

            dynamicEditorAutoCompleteViewModel.TypeName = type.Name;

            var value = dynamicPropertyMetadata.ReflectedProperty.ReflectedPropertyOperations.GetValueFunction(item);

            dynamicEditorAutoCompleteViewModel.SelectedText             = GetSelectItemText(type, value, dataTextField);
            dynamicPropertyViewModel.DynamicEditorAutoCompleteViewModel = dynamicEditorAutoCompleteViewModel;

            dynamicPropertyViewModel.DisplayName = dynamicForiegnKeyPropertyMetadata.ComplexEntityPropertyMetadata.PropertyName;
        }
Beispiel #9
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);
        }
        public void Build(DynamicPropertyMetadata dynamicPropertyMetadata, DynamicPropertyIndexViewModel dynamicPropertyIndexViewModel, dynamic item)
        {
            if (dynamicPropertyMetadata.IsDynamicCollection)
            {
                //view model instructions for collection with dynamicdisplayhyperlink
                var dynamicHyperlinkViewModel = new DynamicEditorHyperlinkViewModel("View " + dynamicPropertyMetadata.DisplayName, dynamicPropertyMetadata.TypeName, "Index");
                ////ToDo: Need to review this.  It assumes FK follows a certain naming convention.  FK must have name of related type
                var fkPropertyName = ((DynamicCollectionEntityPropertyMetadata)dynamicPropertyMetadata).ForiegnKeyPropertyName;
                dynamicHyperlinkViewModel.RouteValueDictionaryWrapper.SetValue(fkPropertyName, dynamicPropertyMetadata.DynamicEntityMetadata.KeyProperty.GetValueFunction(item));
                dynamicPropertyIndexViewModel.DynamicEditorHyperlinkViewModel = dynamicHyperlinkViewModel;
            }
            else if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata)
            {
                var dataIsNull = false;
                var dynamicForiegnKeyPropertyMetadata = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata);
                var dynamicEntity = dynamicForiegnKeyPropertyMetadata.ComplexEntityPropertyMetadata.GetValueFunction(item);
                if (dynamicEntity == null)
                {
                    if (dynamicForiegnKeyPropertyMetadata.IsNullableType)
                    {
                        dataIsNull = true;
                    }
                    else
                    {
                        throw new Exception("DynamicMVC cannot display the default value for " + dynamicPropertyMetadata.PropertyName + " because the DynamicEntity is not loaded.  Please make sure you are loading the " + dynamicPropertyMetadata.PropertyName + " in your query.");
                    }
                }
                if (dataIsNull)
                {
                    dynamicPropertyIndexViewModel.DynamicEditorHyperlinkViewModel = null;
                }
                else
                {
                    var displayValue = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.DefaultProperty.GetValueFunction(dynamicEntity);
                    var dynamicHyperlinkViewModel = new DynamicEditorHyperlinkViewModel(displayValue.ToString(), ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.TypeName, "Details");
                    dynamicHyperlinkViewModel.RouteValueDictionaryWrapper.SetValue("Id", ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.KeyProperty.GetValueFunction(dynamicEntity));
                    dynamicPropertyIndexViewModel.DynamicEditorHyperlinkViewModel = dynamicHyperlinkViewModel;
                }


                dynamicPropertyIndexViewModel.DisplayName = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.PropertyName;
            }
        }
Beispiel #11
0
        public void Build(DynamicPropertyMetadata dynamicPropertyMetadata, DynamicPropertyEditorViewModel dynamicPropertyViewModel, dynamic item)
        {
            if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata)
            {
                var dynamicEntity = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.GetValueFunction()(item);
                var showHyperlink = true;
                if (dynamicEntity == null)
                {
                    if (dynamicPropertyMetadata.IsNullableType())
                    {
                        showHyperlink = false;
                    }
                    else
                    {
                        throw new Exception("DynamicMVC cannot display the default value for " + dynamicPropertyMetadata.PropertyName() + " because the DynamicEntity is not loaded.  Please make sure you are loading the " + dynamicPropertyMetadata.PropertyName() + " in your query.");
                    }
                }

                if (showHyperlink)
                {
                    var displayValue = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.DefaultProperty().GetValueFunction()(dynamicEntity);
                    var dynamicHyperlinkViewModel = new DynamicEditorHyperlinkViewModel(displayValue.ToString(),
                                                                                        ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.TypeName(), "Details");
                    dynamicPropertyViewModel.DynamicEditorHyperlinkViewModel = dynamicHyperlinkViewModel;
                    //ToDo: Need to review this.  It assumes FK follows a certain naming convention.  FK must have name of related type
                    dynamicHyperlinkViewModel.RouteValueDictionaryWrapper.SetValue("Id", ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexDynamicEntityMetadata.KeyProperty().GetValueFunction()(dynamicEntity));
                }

                dynamicPropertyViewModel.DisplayName = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata).ComplexEntityPropertyMetadata.PropertyName();
            }
            else if (dynamicPropertyMetadata.IsDynamicCollection())
            {
                var dynamicHyperlinkViewModel = new DynamicEditorHyperlinkViewModel("View " + dynamicPropertyViewModel.PropertyName, dynamicPropertyMetadata.CollectionItemTypeName(), "Index");

                var fkPropertyName = ((DynamicCollectionEntityPropertyMetadata)dynamicPropertyMetadata).ForiegnKeyPropertyName;
                dynamicHyperlinkViewModel.RouteValueDictionaryWrapper.SetValue(fkPropertyName, dynamicPropertyMetadata.DynamicEntityMetadata.KeyProperty().GetValueFunction()(item));
                dynamicPropertyViewModel.DynamicEditorHyperlinkViewModel = dynamicHyperlinkViewModel;
            }
            else
            {
                throw new Exception("DynamicEditorHyperlinkMaterializer was called on a non DynamicForiegnKeyPropertyMetadata");
            }
        }
 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);
     }
 }
Beispiel #13
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);
        }
Beispiel #14
0
        public IEnumerable <DynamicPropertyMetadata> Build(IReflectedClass reflectedClass, IEnumerable <IReflectedClass> reflectedClasses)
        {
            var dynamicPropertyMetadatas = new List <DynamicPropertyMetadata>();

            foreach (var reflectedProperty in reflectedClass.ReflectedProperties.ToList())
            {
                var dynamicPropertyMetadata = new DynamicPropertyMetadata(reflectedProperty, reflectedClasses);
                if (_navigationPropertyManager.IsForeignKey(reflectedProperty, reflectedClass))
                {
                    dynamicPropertyMetadata = new DynamicForiegnKeyPropertyMetadata(reflectedProperty, reflectedClasses);
                }
                if (dynamicPropertyMetadata.IsDynamicEntity())
                {
                    dynamicPropertyMetadata = new DynamicComplexPropertyMetadata(reflectedProperty, reflectedClasses);
                }
                if (dynamicPropertyMetadata.IsDynamicCollection())
                {
                    dynamicPropertyMetadata = new DynamicCollectionEntityPropertyMetadata(reflectedProperty, reflectedClasses);
                }

                dynamicPropertyMetadatas.Add(dynamicPropertyMetadata);
            }
            return(dynamicPropertyMetadatas);
        }
        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 = "";
            }
        }
Beispiel #16
0
 public DynamicPropertyEditorViewModel(DynamicPropertyMetadata dynamicPropertyMetadata) : base(dynamicPropertyMetadata)
 {
 }
 public DynamicPropertyIndexViewModel(DynamicPropertyMetadata dynamicPropertyMetadata) : base(dynamicPropertyMetadata)
 {
 }
Beispiel #18
0
 public DynamicPropertyViewModel(DynamicPropertyMetadata dynamicPropertyMetadata)
 {
     ViewModelPropertyName = dynamicPropertyMetadata.PropertyName;
     PropertyName          = dynamicPropertyMetadata.PropertyName;
     DisplayName           = dynamicPropertyMetadata.DisplayName;
 }
Beispiel #19
0
 public DynamicFilterViewModel(DynamicPropertyMetadata dynamicPropertyMetadata) : base(dynamicPropertyMetadata)
 {
 }
Beispiel #20
0
        public DynamicPropertyEditorViewModel BuildDynamicPropertyEditorViewModelForEdit(DynamicPropertyMetadata dynamicPropertyMetadata)
        {
            var dynamicPropertyViewModel = new DynamicPropertyEditorViewModel(dynamicPropertyMetadata);

            dynamicPropertyViewModel.ViewModelPropertyName = "Item." + dynamicPropertyMetadata.PropertyName();

            //assign editor
            if (!string.IsNullOrWhiteSpace(dynamicPropertyMetadata.UIHint()))
            {
                dynamicPropertyViewModel.DynamicEditorName = dynamicPropertyMetadata.UIHint();
            }
            else if (dynamicPropertyMetadata.DataType() == DataType.MultilineText)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorMultiLine";
            }
            else if (dynamicPropertyMetadata.DataType() == DataType.Password)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorPassword";
            }
            else if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata)
            {
                var dynamicForiegnKeyPropertyMetadata = ((DynamicForiegnKeyPropertyMetadata)dynamicPropertyMetadata);
                var dropdownType = dynamicForiegnKeyPropertyMetadata.ComplexDynamicEntityMetadata.EntityTypeFunction()();
                if (_dynamicRepository.GetItemsCount(dropdownType) > _dynamicMvcManager.Options.DynamicDropDownRecordLimit)
                {
                    dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorAutoComplete";
                }
                else
                {
                    dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorDropDown";
                }
            }
            else if (dynamicPropertyMetadata.SimpleTypeEnum() == SimpleTypeEnum.DateTime)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorDateTime";
            }
            else if (dynamicPropertyMetadata.SimpleTypeEnum() == SimpleTypeEnum.DateTimeNullable)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorDateTime";
            }
            else if (dynamicPropertyMetadata.SimpleTypeEnum() == SimpleTypeEnum.Bool)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorBool";
            }
            else if (dynamicPropertyMetadata.SimpleTypeEnum() == SimpleTypeEnum.BoolNullable)
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditorBoolNullable";
            }
            else
            {
                dynamicPropertyViewModel.DynamicEditorName = "DynamicEditor";
            }

            return(dynamicPropertyViewModel);
        }
Beispiel #21
0
        public DynamicPropertyEditorViewModel BuildDynamicPropertyEditorViewModelForDetails(DynamicPropertyMetadata dynamicPropertyMetadata)
        {
            var dynamicPropertyEditorViewModel = new DynamicPropertyEditorViewModel(dynamicPropertyMetadata);

            dynamicPropertyEditorViewModel.ViewModelPropertyName = "Item." + dynamicPropertyMetadata.PropertyName();

            //assign editor
            if (!string.IsNullOrWhiteSpace(dynamicPropertyMetadata.UIHint()))
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = dynamicPropertyMetadata.UIHint();
            }
            else if (dynamicPropertyMetadata.DataType() == DataType.MultilineText)
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = "DynamicEditorMultiLineReadonly";
            }
            else if (dynamicPropertyMetadata.DataType() == DataType.Password)
            {
                return(null);
            }
            else if (dynamicPropertyMetadata is DynamicForiegnKeyPropertyMetadata)
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = "DynamicEditorHyperlink";
            }
            else if (dynamicPropertyMetadata.IsSimple())
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = "DynamicEditorReadOnly";
            }
            else if (dynamicPropertyMetadata.IsDynamicCollection())
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = "DynamicEditorHyperlink";
            }
            else
            {
                dynamicPropertyEditorViewModel.DynamicEditorName = "DynamicEditor";
            }

            return(dynamicPropertyEditorViewModel);
        }
Beispiel #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 DynamicPropertyMetadata GetCollectionProperty(DynamicEntityMetadata dynamicEntityMetadata, DynamicPropertyMetadata dynamicPropertyMetadata)
        {
            var collectionProperties = dynamicEntityMetadata.DynamicPropertyMetadatas.Where(x => x.IsDynamicCollection() &&
                                                                                            x.TypeName() == dynamicEntityMetadata.TypeName()).Select(x => (DynamicCollectionEntityPropertyMetadata)x).ToList();

            if (collectionProperties.Count == 0)
            {
                return(null);
            }

            if (collectionProperties.Count == 1)
            {
                return(collectionProperties.First());
            }

            collectionProperties = collectionProperties.Where(x => x.InverseProperty != null && x.InverseProperty == dynamicPropertyMetadata.PropertyName()).ToList();

            if (collectionProperties.Count == 1)
            {
                return(collectionProperties.First());
            }

            if (collectionProperties.Count == 0)
            {
                return(null);
            }

            throw new Exception("Collection cannot be found in entity " + dynamicEntityMetadata.TypeName() + " for property " + dynamicPropertyMetadata.TypeName());
        }