/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } INameResolver nameResolver = context.Config.GetService <INameResolver>(); IConverterManager converterManager = context.Config.GetService <IConverterManager>(); BindingFactory factory = new BindingFactory(nameResolver, converterManager); IBindingProvider outputProvider = factory.BindToGenericAsyncCollector <MobileTableAttribute>(BindForOutput, ThrowIfInvalidOutputItemType); IBindingProvider clientProvider = factory.BindToExactType <MobileTableAttribute, IMobileServiceClient>(BindForClient); IBindingProvider queryProvider = factory.BindToGenericItem <MobileTableAttribute>(BindForQueryAsync); queryProvider = factory.AddFilter <MobileTableAttribute>(IsQueryType, queryProvider); IBindingProvider jObjectTableProvider = factory.BindToExactType <MobileTableAttribute, IMobileServiceTable>(BindForTable); IBindingProvider tableProvider = factory.BindToGenericItem <MobileTableAttribute>(BindForTableAsync); tableProvider = factory.AddFilter <MobileTableAttribute>(IsTableType, tableProvider); IBindingProvider itemProvider = factory.BindToGenericValueProvider <MobileTableAttribute>(BindForItemAsync); itemProvider = factory.AddFilter <MobileTableAttribute>(IsItemType, itemProvider); IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>(); extensions.RegisterBindingRules <MobileTableAttribute>(ValidateMobileAppUri, nameResolver, outputProvider, clientProvider, jObjectTableProvider, queryProvider, tableProvider, itemProvider); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } INameResolver nameResolver = context.Config.GetService <INameResolver>(); IConverterManager converterManager = context.Config.GetService <IConverterManager>(); // Use this if there is no other connection string set. _defaultConnectionString = nameResolver.Resolve(AzureWebJobsDocumentDBConnectionStringName); BindingFactory factory = new BindingFactory(nameResolver, converterManager); IBindingProvider outputProvider = factory.BindToGenericAsyncCollector <DocumentDBAttribute>((attr, t) => BindForOutput(attr, t, context.Trace)); IBindingProvider clientProvider = factory.BindToExactType <DocumentDBAttribute, DocumentClient>(BindForClient); IBindingProvider itemProvider = factory.BindToGenericValueProvider <DocumentDBAttribute>((attr, t) => BindForItemAsync(attr, t, context.Trace)); IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>(); extensions.RegisterBindingRules <DocumentDBAttribute>(ValidateConnection, nameResolver, outputProvider, clientProvider, itemProvider); }
/// <inheritdoc /> public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } _nameResolver = context.Config.GetService <INameResolver>(); IConverterManager converterManager = context.Config.GetService <IConverterManager>(); // Set defaults, to be used if no other values are found: _defaultApiKey = _nameResolver.Resolve(AzureWebJobsMobileAppApiKeyName); string uriString = _nameResolver.Resolve(AzureWebJobsMobileAppUriName); Uri.TryCreate(uriString, UriKind.Absolute, out _defaultMobileAppUri); BindingFactory factory = new BindingFactory(_nameResolver, converterManager); IBindingProvider outputProvider = factory.BindToGenericAsyncCollector <MobileTableAttribute>(BindForOutput, ThrowIfInvalidOutputItemType); IBindingProvider clientProvider = factory.BindToExactType <MobileTableAttribute, IMobileServiceClient>(BindForClient); IBindingProvider queryProvider = factory.BindToGenericItem <MobileTableAttribute>(BindForQueryAsync); queryProvider = factory.AddFilter <MobileTableAttribute>(IsQueryType, queryProvider); IBindingProvider jObjectTableProvider = factory.BindToExactType <MobileTableAttribute, IMobileServiceTable>(BindForTable); IBindingProvider tableProvider = factory.BindToGenericItem <MobileTableAttribute>(BindForTableAsync); tableProvider = factory.AddFilter <MobileTableAttribute>(IsTableType, tableProvider); IBindingProvider itemProvider = factory.BindToGenericValueProvider <MobileTableAttribute>(BindForItemAsync); itemProvider = factory.AddFilter <MobileTableAttribute>(IsItemType, itemProvider); IExtensionRegistry extensions = context.Config.GetService <IExtensionRegistry>(); extensions.RegisterBindingRules <MobileTableAttribute>(ValidateMobileAppUri, _nameResolver, outputProvider, clientProvider, jObjectTableProvider, queryProvider, tableProvider, itemProvider); }