コード例 #1
0
        private object GetFormValues(Type typeOfModel, string prefix)
        {
            var vm = Activator.CreateInstance(typeOfModel);

            foreach (var property in vm.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                var propertyName = string.IsNullOrEmpty(prefix)
                    ? property.Name
                    : string.Format("{0}.{1}", prefix, property.Name);

                if (property.IsReadonly())
                {
                    continue;
                }

                if (!property.PropertyType.IsValueType && property.PropertyType != typeof(string) && !typeof(IEnumerable).IsAssignableFrom(property.PropertyType))
                {
                    var childValue = GetFormValues(property.PropertyType, propertyName);
                    property.SetValue(vm, childValue, null);
                    continue;
                }

                var elements = ((RemoteWebDriver)Browser).FindElementsByName(propertyName);
                var format   = GetFormatStringForProperty(property);
                property.SetValue(vm, FieldFactory.Create(elements).Get(new ModelFieldType(property.PropertyType, format)), null);
            }
            return(vm);
        }
コード例 #2
0
        public void Create_CorrectArg_ShouldReturnAField()
        {
            var factory = new FieldFactory();
            var result  = factory.Create(new Mock <IContest>().Object, "name");

            Assert.IsInstanceOf <Field>(result);
        }
コード例 #3
0
        protected void InputModel(T model)
        {
            foreach (var property in model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                if (property.IsReadonly())
                {
                    continue;
                }

                var elements = ((RemoteWebDriver)Browser).FindElementsByName(property.Name);
                var format   = GetFormatStringForProperty(property);
                FieldFactory.Create(elements).Set(new ModelFieldValue(property.GetValue(model, null), format));
            }
        }
コード例 #4
0
        public T GetFormValues()
        {
            var vm = new T();

            foreach (var property in vm.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                if (property.IsReadonly())
                {
                    continue;
                }

                var elements = ((RemoteWebDriver)Browser).FindElementsByName(property.Name);
                var format   = GetFormatStringForProperty(property);
                property.SetValue(vm, FieldFactory.Create(elements).Get(new ModelFieldType(property.PropertyType, format)), null);
            }
            return(vm);
        }
コード例 #5
0
        private void InputModel(object model, string prefix)
        {
            foreach (var property in model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                var propertyName = string.IsNullOrEmpty(prefix)
                    ? property.Name
                    : string.Format("{0}.{1}", prefix, property.Name);

                if (property.IsReadonly())
                {
                    continue;
                }

                if (!property.PropertyType.IsValueType && property.PropertyType != typeof(string) && !typeof(IEnumerable).IsAssignableFrom(property.PropertyType))
                {
                    InputModel(property.GetValue(model, null), propertyName);
                    continue;
                }

                var elements = ((RemoteWebDriver)Browser).FindElementsByName(propertyName);
                var format   = GetFormatStringForProperty(property);
                FieldFactory.Create(elements).Set(new ModelFieldValue(property.GetValue(model, null), format));
            }
        }