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); }
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())); }
public async Task <IApiResponse <AddSubscriberResponse> > AddSubscriberAsync(string email, MergeVar mergeVar) { var subscriber = SubscriberBuilder.Build(email, SubscriberStatus.Subscribed, mergeVar); return(await AddSubscriberAsync(subscriber)); }
public IApiResponse <AddSubscriberResponse> AddSubscriber(string email, MergeVar mergeVar) { var subscriber = SubscriberBuilder.Build(email, SubscriberStatus.Subscribed, mergeVar); return(AddSubscriber(subscriber)); }