/// <summary> /// search <see cref="Contact"/> by <paramref name="query"/> /// </summary> /// <param name="query"></param> /// <returns></returns> public async Task <Contact?> Search([DisallowNull] FriendshipSearchCondition query) { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"search{JsonConvert.SerializeObject(query)}"); } var contactId = await Puppet.FriendshipSearch(query); if (string.IsNullOrWhiteSpace(contactId)) { return(null); } var contact = WechatyInstance.Contact.Load(contactId); await contact.Ready(); return(contact); }