private QueryFilter BuildKindFilter(ConditionOperation opt, object value) { if (AqsParser.KindKeywordMap.ContainsKey((string)value)) { KindKeyword kindKeyword = AqsParser.KindKeywordMap[(string)value]; if (this.IsQueryConverting) { return(this.BuildTextFilter(this.kindMapping, kindKeyword.ToString(), 1)); } List <QueryFilter> list = new List <QueryFilter>(); string[] array = Globals.KindKeywordToClassMap[kindKeyword]; foreach (string propertyValue in array) { QueryFilter queryFilter = this.BuildTextFilter(this.kindMapping, propertyValue, 13); if (queryFilter != null) { list.Add(queryFilter); } } if (list.Count > 0) { if (list.Count <= 1) { return(list[0]); } return(new OrFilter(list.ToArray())); } } return(null); }
public bool TryGetKindKeyword(string value, out KindKeyword kindKeyword) { if (this.kindKeywordMapping.TryGetValue(value, out kindKeyword)) { return(true); } kindKeyword = KindKeyword.email; return(false); }
protected override void ValidateWrite(List <ValidationError> errors) { base.ValidateWrite(errors); if (this.SourceMailboxes.Contains(base.Id.MailboxOwnerId)) { errors.Add(new PropertyValidationError(ServerStrings.DiscoveryMailboxCannotBeSourceOrTarget(base.Id.MailboxOwnerId.DistinguishedName), SearchObjectSchema.SourceMailboxes, this.SourceMailboxes)); } if (this.TargetMailbox != null) { if (this.SourceMailboxes.Contains(this.TargetMailbox)) { errors.Add(new PropertyValidationError(ServerStrings.SearchTargetInSource, SearchObjectSchema.TargetMailbox, this.TargetMailbox)); } if (this.TargetMailbox.Equals(base.Id.MailboxOwnerId)) { errors.Add(new PropertyValidationError(ServerStrings.DiscoveryMailboxCannotBeSourceOrTarget(base.Id.MailboxOwnerId.DistinguishedName), SearchObjectSchema.TargetMailbox, this.TargetMailbox)); } } if (this.StartDate != null && this.EndDate != null && this.StartDate > this.EndDate) { errors.Add(new PropertyValidationError(ServerStrings.InvalidateDateRange, SearchObjectSchema.StartDate, this.StartDate)); } KindKeyword[] second = new KindKeyword[] { KindKeyword.faxes, KindKeyword.voicemail, KindKeyword.rssfeeds, KindKeyword.posts }; if (this.MessageTypes.Intersect(second).Count <KindKeyword>() > 0) { errors.Add(new PropertyValidationError(ServerStrings.UnsupportedKindKeywords, SearchObjectSchema.MessageTypes, this.MessageTypes)); } if (!string.IsNullOrEmpty(this.SearchQuery)) { try { AqsParser aqsParser = new AqsParser(); aqsParser.Parse(this.SearchQuery, AqsParser.ParseOption.None, this.Language).Dispose(); } catch (ParserException ex) { errors.Add(new PropertyValidationError(ex.LocalizedString, SearchObjectSchema.SearchQuery, this.SearchQuery)); } } }