2017-10-14 9 views
0

Je suis en train de commencer une FormFlow d'un LuisDialog:Microsoft BotFramework FormFlow PromptInStart passe à la reprise après la fonction

[LuisIntent("bookConfRoom")] 
public async Task BookConferenceRoom(IDialogContext context, LuisResult result) 
{ 
    IDialog<RoomBooking> roomBookingDialog = MakeRootDialog(); 
    context.Call(roomBookingDialog, RoomBookingComplete); 
} 

MakeRootDialog() builds la forme FormFlow:

internal static IDialog<RoomBooking> MakeRootDialog() 
{ 
    return Chain.From(() => 
     FormDialog.FromForm(RoomBooking.BuildForm, options: FormOptions.PromptInStart)); 
} 

Et RoomBooking ressemble à ceci :

[Serializable] 
public class RoomBooking 
{ 
    public LocationOptions MeetingLocation; 
    public DateTime MeetingTime; 
    public double NumberOfHours; 
    public int NumberOfAttendees; 
    public List<AmenitiesOptions> Amenities; 

    public static IForm<RoomBooking> BuildForm() 
    { 
     return new FormBuilder<RoomBooking>().Build(); 
    } 
} 

Lorsque cette intention est atteinte, le CV à l'arrière La fonction RoomBookingComplete s'exécute immédiatement sans que FormFlow n'apparaisse. Cependant si j'enlève FormOptions.PromptInStart alors le FormFlow fonctionne, mais vous devez envoyer un autre message au bot avant qu'il ne commence, ce que je pensais que PromptInStart corrigerait?

Je pense que je suis confus avec l'ordre de la pile de dialogue et/ou le contexte de dialogue dans lequel je suis. Toute aide sera appréciée.

Répondre

0

Vous devez supprimer les Chain.From

internal static IDialog<RoomBooking> MakeRootDialog() 
{ 
    return FormDialog.FromForm(RoomBooking.BuildForm, options: FormOptions.PromptInStart)); 
} 
+0

Merci pour votre @EzequielJadib d'aide. Malheureusement, je reçois toujours le même problème même avec 'Chain.From' supprimé. – Poc275

+0

Quelle version de BotBuilder utilisez-vous? –

+0

C'est la version 3.8.5.0 – Poc275