/// <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()); }
/// <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)); }