public async Task <ITriggerData> BindAsync(object value, ValueBindingContext context) { HttpRequestMessage request = value as HttpRequestMessage; WebHookContext webHookContext = value as WebHookContext; if (request == null && webHookContext != null) { request = webHookContext.Request; } if (request == null && value != null && value.GetType() == typeof(string)) { // We've received an invoke string (e.g. from a Dashboard replay/invoke // so convert to a request request = FromInvokeString((string)value); } if (webHookContext == null) { webHookContext = new WebHookContext(request); } IValueProvider valueProvider = null; IReadOnlyDictionary <string, object> bindingData = null; string invokeString = ToInvokeString(request); if (_isUserTypeBinding) { valueProvider = await CreateUserTypeValueProvider(request, invokeString); if (_bindingDataProvider != null) { // the provider might be null if the Type is invalid, or if the Type // has no public properties to bind to bindingData = _bindingDataProvider.GetBindingData(valueProvider.GetValue()); } } else { valueProvider = new WebHookRequestValueBinder(_parameter, webHookContext, invokeString); } return(new TriggerData(valueProvider, bindingData)); }
public async Task<ITriggerData> BindAsync(object value, ValueBindingContext context) { HttpRequestMessage request = value as HttpRequestMessage; if (request == null && value != null && value.GetType() == typeof(string)) { // We've received an invoke string (e.g. from a Dashboard replay/invoke // so convert to a request request = FromInvokeString((string)value); } IValueProvider valueProvider = null; IReadOnlyDictionary<string, object> bindingData = null; string invokeString = ToInvokeString(request); if (_isUserTypeBinding) { valueProvider = await CreateUserTypeValueProvider(request, invokeString); if (_bindingDataProvider != null) { // the provider might be null if the Type is invalid, or if the Type // has no public properties to bind to bindingData = _bindingDataProvider.GetBindingData(valueProvider.GetValue()); } } else { valueProvider = new WebHookRequestValueBinder(_parameter, request, invokeString); } return new TriggerData(valueProvider, bindingData); }