/// <summary>
        /// Creates a new subscription.
        /// </summary>
        public async Task <Subscription> New(Session session)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }

            Subscription        subscription        = new Subscription(session.DefaultSubscription);
            SubscriptionEditDlg subscriptionEditDlg = new SubscriptionEditDlg();

            if (!await subscriptionEditDlg.ShowDialog(subscription))
            {
                return(null);
            }

            session.AddSubscription(subscription);
            subscription.Create();

            Show(subscription);

            return(subscription);
        }
        /// <summary>
        /// Creates a new subscription.
        /// </summary>
        public async Task<Subscription> New(Session session)
        {
            if (session == null) throw new ArgumentNullException("session");

            Subscription subscription = new Subscription(session.DefaultSubscription);
            SubscriptionEditDlg subscriptionEditDlg = new SubscriptionEditDlg();
            if (!await subscriptionEditDlg.ShowDialog(subscription))
            {
                return null;
            }

            session.AddSubscription(subscription);
            subscription.Create();

            Show(subscription);

            return subscription;
        }