private void ApplyUnapplyExtensionServer(ExtensionManager extensionManager, bool shouldApply, ExtensionServer server)
        {
            if (shouldApply)
            {
                // add extensions
                foreach (Extension ext in extensionManager.CreateExtensions(server, this))
                {
                    _extensions.Add(new ExtensionEntry(ext, server));
                }
            }
            else
            {
                // remove extensions
                _extensions.RemoveAll(
                    entry =>
                {
                    if (entry.Server == server)
                    {
                        server.RemoveExtension(entry.Extension);
                        return(true);
                    }

                    return(false);
                });
            }
        }