protected override async Task <DialogTurnResult> OnContinueDialogAsync(DialogContext innerDc,
                                                                               CancellationToken cancellationToken = default)
        {
            if (innerDc.Context.Activity.Type == ActivityTypes.Message)
            {
                var text           = innerDc.Context.Activity.Text.ToLowerInvariant();
                var interuptOption = _interuptOptionFactory.Get(text);
                if (interuptOption != InteruptAction.Cancel || interuptOption != InteruptAction.Continue ||
                    interuptOption != InteruptAction.Help)
                {
                    //TODO Log
                    await innerDc.Context.SendActivityAsync("Invalid action");

                    return(null);
                }

                var dialogResult = await _interuptOptionService.Handle(innerDc, interuptOption, cancellationToken);

                if (dialogResult != null)
                {
                    return(dialogResult);
                }
            }

            return(await base.OnContinueDialogAsync(innerDc, cancellationToken));
        }
 public async Task dialog_context_is_null_throw_exception()
 {
     await Assert.ThrowsAsync <ArgumentNullException>(async() =>
                                                      await _service.Handle(null, Enums.InteruptAction.Cancel, new CancellationToken()));
 }