/// <summary>
        /// Adds the XmlSerializer and DataContractSerializer formatters to MVC.
        /// Adds the XmlResult and FromXmlBody Extension to MVC.
        /// </summary>
        /// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
        /// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
        public static IMvcCoreBuilder AddXmlFormaterExtensions(this IMvcCoreBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            builder.AddXmlDataContractSerializerFormatters();
            builder.AddXmlSerializerFormatters();
            AddXmlFormaterExtensionsServices(builder.Services);

            return(builder);
        }
        /// <summary>
        /// Add Salesforce WebHook configuration and services to the specified <paramref name="builder"/>.
        /// </summary>
        /// <param name="builder">The <see cref="IMvcCoreBuilder" /> to configure.</param>
        /// <returns>The <paramref name="builder"/>.</returns>
        public static IMvcCoreBuilder AddSalesforceWebHooks(this IMvcCoreBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            SalesforceServiceCollectionSetup.AddSalesforceServices(builder.Services);

            return(builder
                   .AddXmlSerializerFormatters()
                   .AddWebHooks());
        }
Example #3
0
        /// <summary>
        /// Add Salesforce WebHook configuration and services to the specified <paramref name="builder"/>.
        /// </summary>
        /// <param name="builder">The <see cref="IMvcCoreBuilder" /> to configure.</param>
        /// <returns>The <paramref name="builder"/>.</returns>
        public static IMvcCoreBuilder AddSalesforceWebHooks(this IMvcCoreBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var services = builder.Services;

            services.TryAddEnumerable(ServiceDescriptor.Singleton <IWebHookMetadata, SalesforceMetadata>());
            services.TryAddSingleton <ISalesforceResultCreator, SalesforceResultCreator>();

            // ??? Are the [DataContract] formatters also needed? XmlSerializer is enough for at least XElement.
            // ??? Does SalesforceAcknowledgmentFilter need a non-default Order too?
            return(builder
                   .AddXmlSerializerFormatters()
                   .AddWebHooks(OptionsSetupAction)
                   .AddSingletonFilter <SalesforceAcknowledgmentFilter>()
                   .AddSingletonFilter <SalesforceVerifyOrganizationIdFilter>(WebHookSecurityFilter.Order));
        }