public IEnumerable <WeatherForecast> Get() { var fieldDefinition = new TextboxField("test", "test"); fieldDefinition.FieldName = "test"; var filter = QueryBuilders.Contains(fieldDefinition, "test"); var sort = QueryBuilders.SortBy(fieldDefinition, SortDirection.Desc); var searchCriteria = new SearchCondition(1, 10, filter, sort); var rng = new Random(); return(Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }) .ToArray()); }
private async Task <Control> GetControl(PropertyInfo prop) { var ignoreAttr = prop.GetCustomAttribute <IgnoreInFormAttribute>(false); var dnAttr = prop.GetCustomAttribute <DisplayNameAttribute>(false); var maskAttr = prop.GetCustomAttribute <MaskAttribute>(false); // // Игнорировать свойства с соответствующим атрибутом или без имени // if (ignoreAttr == null & dnAttr != null) { string displayName = dnAttr.DisplayName; UserControl userControl; // // Если значения свойства экземпляры другой сущности, то вернуть комбобокс // if (prop.GetCustomAttribute <RelatedEntityAttribute>(false) != null) { if (IsEditMode) { var entityIdProp = EditingObject .GetType() .GetProperty(prop.Name + "Id") .GetValue(EditingObject); if (entityIdProp == null) { entityIdProp = 1L; } userControl = new ComboboxField(displayName, prop, (long)entityIdProp); await(userControl as ComboboxField).LoadAsync(); } else { userControl = new ComboboxField(displayName, prop); await(userControl as ComboboxField).LoadAsync(); } } // // Если значение свойства дата, то вернуть пикер даты // else if (prop.PropertyType == typeof(DateTime)) { if (IsEditMode) { var propValue = prop.GetValue(EditingObject).ToString(); userControl = new DatePickerField(displayName, prop, propValue); } else { userControl = new DatePickerField(displayName, prop); } } // // Если значение свойства бул, то вернуть чекбокс // else if (prop.PropertyType == typeof(bool)) { if (IsEditMode) { var propValue = (bool)prop.GetValue(EditingObject); userControl = new CheckboxField(displayName, prop, propValue); } else { if (prop.Name != "IsComplete") { userControl = new CheckboxField(displayName, prop); } else { return(null); } } } // // Если указан атрибут маски, вернуть текстбокс с маской // else if (maskAttr != null) { var mask = maskAttr.Mask; if (IsEditMode) { var propValue = prop.GetValue(EditingObject).ToString(); userControl = new MaskedTextboxField(displayName, prop, mask, propValue); } else { userControl = new MaskedTextboxField(displayName, prop, mask); } } // // Иначе вернуть обычный текстбокс // else { if (IsEditMode) { var propValue = prop.GetValue(EditingObject).ToString(); userControl = new TextboxField(displayName, prop, propValue); } else { userControl = new TextboxField(displayName, prop); } } return(userControl); } else { return(null); } }