private void CheckForEmptyFields(BoostedSearchQuery query) { if (query.SearchableFields.Contains("")) { throw new ArgumentException(Resources.QueryConverter.IncorrectQuerySyntaxis); } }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { string key = value as string; if (String.IsNullOrEmpty(key)) { throw new ArgumentException(Resources.QueryConverter.IncorrectQuerySyntaxis); } BoostedSearchQuery result = new BoostedSearchQuery(); var data = key.Split(new char[] { ';' }); if (data.Length > 1) { result.Query = data[0]; string boostFieldValues = data[1]; var boosts = boostFieldValues.Split(new char[] { ',' }); if (boosts.Length > 0) { foreach (var boost in boosts) { var fieldNameBoost = boost.Split(new char[] { ':' }); if (fieldNameBoost.Length == 2) { float fieldBoost = float.Parse(fieldNameBoost[1], CultureInfo.InvariantCulture); result.AddField(fieldNameBoost[0], fieldBoost); } else { result.AddField(fieldNameBoost[0], 1.0f); } } } CheckForEmptyFields(result); return(result); } else { throw new ArgumentException(Resources.QueryConverter.IncorrectQuerySyntaxis); } } return(base.ConvertFrom(context, culture, value)); }