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);
 }
Esempio n. 2
0
 public bool TryGetKindKeyword(string value, out KindKeyword kindKeyword)
 {
     if (this.kindKeywordMapping.TryGetValue(value, out kindKeyword))
     {
         return(true);
     }
     kindKeyword = KindKeyword.email;
     return(false);
 }
Esempio n. 3
0
 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));
         }
     }
 }