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); }
public void Create_CorrectArg_ShouldReturnAField() { var factory = new FieldFactory(); var result = factory.Create(new Mock <IContest>().Object, "name"); Assert.IsInstanceOf <Field>(result); }
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)); } }
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); }
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)); } }