Hvordan kan jeg gå tilbake til forrige brukeren samtale når jeg klikker på tilbake-knappen i dialogboksen for bekreftelse?

stemmer
3

Jeg jobber for tiden på Bot rammeverk teknologi, i en av mitt prosjekt ønsker jeg å gå tilbake til brukeren samtalen når jeg klikker på tilbake-knappen i FORM som dette i figuren nedenfor. skriv

Jeg vet når brukeren skriver inn tilbake i bot rammeverk emulator vil det gå tilbake umiddelbart, men jeg vil ovennevnte scenario.

Hvordan kan jeg løse ovennevnte scenario?

Publisert på 17/06/2016 klokken 13:05
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Hvis dette er en FormDialog, kan du legge validering trinn til hvert element i form. I ditt tilfelle, er du sannsynligvis bruker en bool "WantsToCreateAccount" eller noe til slike som det?

I FormBuilder koden, vil du vanligvis gjøre som jeg har gjort her, på en enklere form:

public static IForm<UserData> BuildForm()
{
    return new FormBuilder<UserData>()
            .Message("Before we start, let me ask you a couple of questions")
            .AddRemainingFields()

            .Field(new FieldReflector<UserData>(nameof(IsCustomer))
                .SetValidate(async (state, value) => await ValidateIsCustomerFieldAsync(state, value)))

            .Field(new FieldReflector<UserData>(nameof(HasCustomerId))
                .SetValidate(async (state, value) => await ValidateHasCustomerIdFieldAsync(state, value)))

            .Build();
}

Den SetValidate er nøkkelen her, hvor du kan søke hva logikken du vil etter validering av dette feltet, dvs.

private static Task<ValidateResult> ValidateHasCustomerIdFieldAsync(UserData state, object value)
{
    if( (SvarAlternativ) value == SvarAlternativ.Nej)
    {
        state.CustomerId = "Kund, har inte Id";
    }
    return Task.FromResult(new ValidateResult { IsValid = true, Value = value });
}

Merk at en boolsk verdi er vanskelig å gjøre validering med fordi det er en verditype som ikke kan være null, så validatoren ikke vil se om den har en "NoValue" eller "false" tilstand. På grunn av dette, jeg bare laget en enum, der null verdi er "NoValue" state satt av bot rammeverk:

public enum SvarAlternativ
    {
        NoValue,
        Ja, 
        Nej
    }

Håper dette hjelper deg. Når du er inne valideringen metoden, kan du context.close eller gjøre hva du trenger.

Svarte 21/04/2017 kl. 08:11
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more