示例#1
0
        /// <summary>
        /// Queues the subscription to the subscription thread queue to start it processing.
        /// </summary>
        /// <param name="poBox">POBox that contains the subscription.</param>
        /// <param name="subscriptionID">The Node ID for the subscription.</param>
        private void StartSubscription(POBox poBox, string subscriptionID)
        {
            // See if this POBox belongs to an old domain.
            Domain domain = store.GetDomain(poBox.Domain);

            if ((domain != null) && (domain.SupportsNewInvitation == false))
            {
                // Get the subscription node.
                Subscription subscription = poBox.GetNodeByID(subscriptionID) as Subscription;
                if (subscription != null)
                {
                    switch (subscription.SubscriptionState)
                    {
                    // invited (master)
                    case SubscriptionStates.Invited:
                        if (subscription.Originator == store.LocalDomain)
                        {
                            subscriptionService.QueueSubscription(poBox, subscription);
                        }
                        break;

                    // replied (slave)
                    case SubscriptionStates.Replied:
                        subscriptionService.QueueSubscription(poBox, subscription);
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    log.Debug("Error: OnSubscriptionChanged - Cannot find subscription {0} in POBox {1}.", subscriptionID, poBox.ID);
                }
            }
            else
            {
                if (domain == null)
                {
                    log.Debug("Error: OnSubscriptionChanged - Cannot find domain {0}", poBox.Domain);
                }
            }
        }
示例#2
0
        private void UpdateSubscription(Subscription subscription)
        {
            switch (subscription.SubscriptionState)
            {
            // invited (master)
            case SubscriptionStates.Invited:
                if (subscription.Originator == store.LocalDomain)
                {
                    subscriptionService.QueueSubscription(subscription);
                }
                break;

            // replied (slave)
            case SubscriptionStates.Replied:
                subscriptionService.QueueSubscription(subscription);
                break;

            default:
                break;
            }
        }