Ejemplo n.º 1
0
        public ISubscriptionGen AddSubscription(ISubscriptionKeyGen subscriptionRequest, out bool wasAdded)
        {
            if (subscriptionRequest.HasBeenUsed)
            {
                throw new ApplicationException("Its alread been used.");
            }

            SubscriberCollection sc = GetSubscriptions((SimpleExKey)subscriptionRequest.SourcePropRef);

            bool internalWasAdded = false;

            ISubscriptionGen result = sc.GetOrAdd
                                      (
                subscriptionRequest,
                (
                    x => subscriptionRequest.CreateSubscription()
                )
                                      );

            if (subscriptionRequest.HasBeenUsed)
            {
                System.Diagnostics.Debug.WriteLine($"Created a new Subscription for Property:" +
                                                   $" {subscriptionRequest.SourcePropRef} / Event: {result.SubscriptionKind}.");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine($"The subscription for for Property:" +
                                                   $" {subscriptionRequest.SourcePropRef} / Event: {result.SubscriptionKind} was not added.");
            }

            wasAdded = internalWasAdded;
            return(result);
        }