Пример #1
0
        internal sealed override Column PerformTranslateTo(Model model)
        {
            Debug.Assert(model != null);

            if (ParentModel != null)
            {
                if (model == ParentModel)
                {
                    return(this);
                }

                if (model.GetType() != ParentModel.GetType())
                {
                    throw new ArgumentException(DiagnosticMessages.Column_TranslateToModelTypeMismatch, nameof(model));
                }

                if (IsLocal)
                {
                    return(model.LocalColumns[Ordinal]);
                }
                else
                {
                    return(model.Columns[Ordinal]);
                }
            }

            var translatedExpression = Expression.PerformTranslateTo(model);

            if (Expression == translatedExpression)
            {
                return(this);
            }
            var result = (Column <T>)Activator.CreateInstance(GetType());

            translatedExpression.SetOwner(result);
            return(result);
        }
Пример #2
0
        public void GetSelectorMetadataTest()
        {
            var model         = new GridModel();
            var parentModel   = new ParentModel();
            var modelMetadata = System.Web.Mvc.ModelMetadataProviders.Current.GetMetadataForProperties(model, model.GetType());
            var parentModelPropertyMetadata = System.Web.Mvc.ModelMetadataProviders.Current.GetMetadataForProperties(parentModel, parentModel.GetType());

            var           parentModelPropertiesMetadata = parentModelPropertyMetadata as List <ModelMetadata> ?? parentModelPropertyMetadata.ToList();
            var           modelPropertiesMetadata       = modelMetadata as List <ModelMetadata> ?? modelMetadata.ToList();
            ModelMetadata actual = GridHelper.GetSelectorMetadata(modelPropertiesMetadata.FirstOrDefault(), modelPropertiesMetadata, parentModelPropertiesMetadata.FirstOrDefault(), parentModelPropertiesMetadata);

            Assert.IsNull(actual);

            var           s       = parentModelPropertiesMetadata.First(p => p.PropertyName == "SingleSelectGrid");
            ModelMetadata actual1 = GridHelper.GetSelectorMetadata(modelPropertiesMetadata.FirstOrDefault(), modelPropertiesMetadata, s, parentModelPropertiesMetadata);

            Assert.IsNotNull(actual1);
            Assert.IsTrue(actual1.ContainerType == typeof(ParentModel));

            var           m       = parentModelPropertiesMetadata.First(p => p.PropertyName == "MultipleSelectGrid");
            ModelMetadata actual2 = GridHelper.GetSelectorMetadata(modelPropertiesMetadata.FirstOrDefault(), modelPropertiesMetadata, m, parentModelPropertiesMetadata);

            Assert.IsNotNull(actual2);
            Assert.IsTrue(actual2.ContainerType == typeof(GridModel));
        }
Пример #3
0
        public void GetSelectionTypeTest()
        {
            var model         = new GridModel();
            var parentModel   = new ParentModel();
            var modelMetadata = System.Web.Mvc.ModelMetadataProviders.Current.GetMetadataForProperties(model, model.GetType());
            var parentModelPropertyMetadata = System.Web.Mvc.ModelMetadataProviders.Current.GetMetadataForProperties(parentModel, parentModel.GetType());

            var           modelPropertyMetadata = parentModelPropertyMetadata as List <ModelMetadata> ?? parentModelPropertyMetadata.ToList();
            var           d = modelPropertyMetadata.First(p => p.PropertyName == "DisplayGrid");
            var           modelMetadatas = modelMetadata as List <ModelMetadata> ?? modelMetadata.ToList();
            SelectionType actual         = GridHelper.GetSelectionType(modelMetadatas.FirstOrDefault(), d);

            Assert.AreEqual(SelectionType.None, actual);

            var s = modelPropertyMetadata.First(p => p.PropertyName == "SingleSelectGrid");

            actual = GridHelper.GetSelectionType(modelMetadatas.FirstOrDefault(), s);
            Assert.AreEqual(SelectionType.Single, actual);

            var m = modelPropertyMetadata.First(p => p.PropertyName == "MultipleSelectGrid");

            actual = GridHelper.GetSelectionType(modelMetadatas.FirstOrDefault(), m);
            Assert.AreEqual(SelectionType.Multiple, actual);
        }