public static ILuisAction BuildContextForContextualAction(ILuisAction action, out string intentName) { if (action == null) { throw new ArgumentNullException(nameof(action)); } if (!LuisActionResolver.IsContextualAction(action)) { intentName = null; return(null); } var contextType = action .GetType() .GetInterfaces() .First(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(ILuisContextualAction <>)) .GetGenericArguments()[0]; var result = Activator.CreateInstance(contextType) as ILuisAction; intentName = LuisActionResolver.GetActionDefinition(result).IntentName; var isContextual = false; LuisActionResolver.IsValidContextualAction(action, result, out isContextual); return(result); }
public static bool CanStartWithNoContextAction(ILuisAction action, out LuisActionBindingAttribute actionDefinition) { if (action == null) { throw new ArgumentNullException(nameof(action)); } if (!LuisActionResolver.IsContextualAction(action)) { actionDefinition = null; return(true); } actionDefinition = LuisActionResolver.GetActionDefinition(action); return(actionDefinition.CanExecuteWithNoContext); }