public bool TryGetSubscriber(TypeSystem.ComplexType type, string fieldName, out SubscriberBuilder subscriber)
        {
            if (_subscribers.TryGetValue(type.Name, out var fields))
            {
                if (fields.TryGetValue(fieldName, out subscriber))
                {
                    return(true);
                }
            }

            subscriber = null;
            return(false);
        }
        public ConnectionBuilder Include(
            ObjectType objectType,
            string fieldName,
            SubscriberBuilder subscriber)
        {
            if (_subscribers.TryGetValue(objectType.Name, out var subscriberBuilders))
            {
                subscriberBuilders.Add(fieldName, subscriber);
            }
            else
            {
                throw new ArgumentOutOfRangeException(nameof(objectType),
                                                      $"Cannot include subscriber. Unknown type '{objectType.Name}'.");
            }

            return(this);
        }
Exemple #3
0
        public SubscriberBuilder Subscriber(ComplexType owner, string fieldName)
        {
            if (!_subscribers.ContainsKey(owner.Name))
            {
                _subscribers[owner.Name] = new Dictionary <string, SubscriberBuilder>();
            }

            if (_subscribers[owner.Name].ContainsKey(fieldName))
            {
                throw new SchemaBuilderException(owner.Name,
                                                 $"Cannot add subscriber for '{fieldName}'. Subscriber has been already created. Use {nameof(GetOrAddSubscriber)}.");
            }

            var builder = new SubscriberBuilder();

            _subscribers[owner.Name].Add(fieldName, builder);
            return(builder);
        }
        public DirectiveFieldVisitorContext WithSubscriber(Action <ResolverBuilder> buildResolver, Action <SubscriberBuilder> buildSubscriber)
        {
            if (buildResolver == null)
            {
                throw new ArgumentNullException(nameof(buildResolver));
            }
            if (buildSubscriber == null)
            {
                throw new ArgumentNullException(nameof(buildSubscriber));
            }

            var resolverBuilder = new ResolverBuilder();

            buildResolver(resolverBuilder);

            var subscriberBuilder = new SubscriberBuilder();

            buildSubscriber(subscriberBuilder);

            return(new DirectiveFieldVisitorContext(Name, Field, resolverBuilder.Build(), subscriberBuilder.Build()));
        }
Exemple #5
0
        public async Task <IApiResponse <AddSubscriberResponse> > AddSubscriberAsync(string email, MergeVar mergeVar)
        {
            var subscriber = SubscriberBuilder.Build(email, SubscriberStatus.Subscribed, mergeVar);

            return(await AddSubscriberAsync(subscriber));
        }
Exemple #6
0
        public IApiResponse <AddSubscriberResponse> AddSubscriber(string email, MergeVar mergeVar)
        {
            var subscriber = SubscriberBuilder.Build(email, SubscriberStatus.Subscribed, mergeVar);

            return(AddSubscriber(subscriber));
        }