Вариант формы A сбрасывает поток и снова отправляет форму

Я пытаюсь создать форму с помощью фреймворка бота, используя инструкции в этот вопрос в той же среде (Visual Studio C#), за исключением того, что мой GroupOptions выглядит так:

public enum GroupOptions
{
    [Describe("Grupo A")]
    GrupoZ,
    [Describe("Grupo B")]
    GrupoB,
    [Describe("Grupo C")]
    GrupoC,
    [Describe("Grupo D")]
    GrupoD,
    [Describe("Grupo E")]
    GrupoE,
    [Describe("Grupo F")]
    GrupoF,
    [Describe("Grupo G")]
    GrupoG,
    [Describe("Grupo H")]
    GrupoH
};

Причина, по которой группа A совпадает с группой Z, заключается в том, что если я напишу это так:

[Describe("Grupo A")]
    GrupoA,...

Я получаю сообщение об ошибке «A» не вариант каждый раз, когда я пытаюсь щелкнуть по нему, но когда я использую GrupoZ следующим образом:

var query = await result;
            string current = (query.grupo.Value.ToString()[query.grupo.Value.ToString().Length - 1]).ToString().Replace("Z","A");
            string message = $"  \nThe teams in group {current} are: ";
... later on I use current on a linq query

И я пытаюсь щелкнуть по нему, вся форма отправляется снова, без сообщения об ошибке или чего-то еще, форма просто отправляется снова, все остальные варианты B, C, D... отлично работают, почему это происходит и как я могу работать вокруг него? Заглавная буква А зарезервирована или что-то в этом роде? Я также попытался изменить параметр ниже и добавить параметры над ним с теми же результатами. Любое понимание будет очень признательно, я загружу большие куски кода, если потребуется.


person IvanHid    schedule 12.04.2018    source источник


Ответы (1)


Я не уверен в том, что вызывает ошибку. Но вам не нужно бороться, заменив z на a. Вы можете просто использовать атрибут Условия в FormFlow.

Я смог выбрать GrupoA, набрав «A», используя следующее перечисление:

public enum GroupOptions{

        [Describe("Grupo A")]
        [Terms("A")]
        GrupoA=1,
        [Describe("Grupo B")]
        GrupoB,
        [Describe("Grupo C")]
        GrupoC,
        [Describe("Grupo D")]
        GrupoD,
        [Describe("Grupo E")]
        GrupoE,
        [Describe("Grupo F")]
        GrupoF,
        [Describe("Grupo G")]
        GrupoG,
        [Describe("Grupo H")]
        GrupoH

}; 
person Anita George    schedule 12.04.2018
comment
Еще один удивительный ответ! Большое спасибо! Теперь он работает отлично, кстати, не могли бы вы объяснить, что означают термины? - person IvanHid; 12.04.2018
comment
Атрибут терминов используется для указания альтернативы данной опции. Вы можете указать его, используя либо строки, либо регулярное выражение. См. docs.microsoft.com/en-us/azure/bot-service/dotnet/ - person Anita George; 13.04.2018