protected virtual void OnStartPresentation(StartOrJoinPresentation cmd, SocketSubscription sender)
        {
            var presentation = new Presentation(cmd.Name, new Presenter(sender));

            if (Presentations.AddIfNew(presentation))
            {
                presentation.Presenter.Subscription.OnDesubscribe = () =>
                {
                    Presentations.Remove(presentation);
                    presentation.End();
                };

                sender.Connection.SendEvent(new PresentationStarted
                {
                    Name = presentation.Name
                });
            }
        }