public FilterViewModel GetFilterViewModel(Property property, FilterDTO filterDto = null) { var propertyType = (PropertyTypeEnum)Enum.Parse(typeof(PropertyTypeEnum), property.Type.Name, true); return(GetFilterViewModel(property.Name, propertyType, property.Id, property.FilterInfo, property.Constraints, filterDto)); }
public FilterViewModel GetFilterViewModel(string propertyName, PropertyTypeEnum propertyType, int propertyId, JsonDocument filterInfo, JsonDocument constraints, FilterDTO filterDto = null) { Type filterViewType = null; if (_mapper.ContainsId(propertyId)) { filterViewType = _mapper.GetFilterForProperty(propertyId); } else if (_mapper.ContainsType(propertyType)) { filterViewType = _mapper.GetFilterForType(propertyType); } else { return(null); } var filterViewModel = (FilterViewModel)_mapper.GetFilterFactory(filterViewType)(); filterViewModel.PropertyId = propertyId; filterViewModel.PropertyType = propertyType; filterViewModel.PropertyName = propertyName; dynamic filterInfoJObject = JsonConvert.DeserializeObject(filterInfo.ToJsonString()); dynamic constraintsJObject = JsonConvert.DeserializeObject(constraints.ToJsonString()); if (_buildersMap.ContainsKey(filterViewType)) { filterViewModel = _buildersMap[filterViewType] .BuildFilterViewModel(filterViewModel, filterInfoJObject, constraintsJObject, filterDto); } /*else * { * var metadata = _mapper.GetFilterPropertiesMetadata(filterViewType); * foreach (var property in metadata) * { * if(filterInfo.RootElement.TryGetProperty(property.Name, out var p)) * p. * } * }*/ return(filterViewModel); }