internal static bool TryTestUserCache(string databaseServer, string primarySmtpAddress, SubscriptionCacheAction cacheAction, out string failureReason, out uint cacheActionResult, out List <SubscriptionCacheObject> cacheObjects, out ObjectState objectState) { SyncUtilities.ThrowIfArgumentNullOrEmpty("databaseServer", databaseServer); SyncUtilities.ThrowIfArgumentNullOrEmpty("primarySmtpAddress", primarySmtpAddress); failureReason = null; cacheActionResult = 268435456U; cacheObjects = null; objectState = ObjectState.Unchanged; byte[] testUserCacheInputBytes = SubscriptionCacheClient.GetTestUserCacheInputBytes(primarySmtpAddress, cacheAction); byte[] array = null; using (SubscriptionCacheRpcClient subscriptionCacheRpcClient = new SubscriptionCacheRpcClient(databaseServer)) { try { array = subscriptionCacheRpcClient.TestUserCache(0, testUserCacheInputBytes); } catch (RpcException exception) { failureReason = Strings.CacheRpcExceptionEncountered(exception); return(false); } } MdbefPropertyCollection args = MdbefPropertyCollection.Create(array, 0, array.Length); int num; if (!RpcHelper.TryGetProperty <int>(args, 2835349507U, out num)) { failureReason = Strings.CacheRpcInvalidServerVersionIssue(databaseServer); return(false); } cacheActionResult = (uint)num; RpcHelper.TryGetProperty <string>(args, 2835415071U, out failureReason); byte[] buffer; if (RpcHelper.TryGetProperty <byte[]>(args, 2835480834U, out buffer)) { using (MemoryStream memoryStream = new MemoryStream(buffer)) { cacheObjects = (List <SubscriptionCacheObject>)SubscriptionCacheClient.binaryFormatter.Deserialize(memoryStream); } } if (RpcHelper.TryGetProperty <int>(args, 2835546115U, out num)) { objectState = (ObjectState)num; } return(true); }