/// <summary> /// Returns a <see cref="IPersistentConnectionContext"/> for the <see cref="PersistentConnection"/>. /// </summary> /// <param name="type">Type of the <see cref="PersistentConnection"/></param> /// <returns>A <see cref="IPersistentConnectionContext"/> for the <see cref="PersistentConnection"/>.</returns> public IPersistentConnectionContext GetConnection(Type type) { if (type == null) { throw new ArgumentNullException("type"); } string rawConnectionName = type.FullName; string connectionName = PrefixHelper.GetPersistentConnectionName(rawConnectionName); IConnection connection = GetConnectionCore(connectionName); return(new PersistentConnectionContext(connection, new GroupManager(connection, PrefixHelper.GetPersistentConnectionGroupName(rawConnectionName)))); }
internal static void PopulateResponseState(PersistentResponse response, DiffSet <string> groupSet, JsonSerializer serializer, IProtectedData protectedData, string connectionId) { bool anyChanges = groupSet.DetectChanges(); if (anyChanges) { // Create a protected payload of the sorted list IEnumerable <string> groups = groupSet.GetSnapshot(); // Remove group prefixes before any thing goes over the wire string groupsString = connectionId + ':' + serializer.Stringify(PrefixHelper.RemoveGroupPrefixes(groups));; // The groups token response.GroupsToken = protectedData.Protect(groupsString, Purposes.Groups); } }