コード例 #1
0
        private async Task OnAvailibleOperatorsResponse(IDialogContext context, GetAvailableOperatorsResponse result)
        {
            availibleOperators = result;
            availibleOperators.AvailableOperators =
                availibleOperators.AvailableOperators.DistinctBy(ope => ope.DisplayName).ToList();
            if (availibleOperators.AvailableOperators.Count > 1)
            {
                var operatorNames = availibleOperators.AvailableOperators.Select(ope => ope.DisplayName).ToList();
                operatorNames.Sort();
                await context.SayAsync(string.Format(Resources.OperatorConnect_available_list, $"{string.Join(", ", operatorNames.Take(operatorNames.Count - 1))} {Resources.and} {operatorNames.Last()}"));

                PromptDialog.Choice(context, OnOperatorSelected, operatorNames, Resources.OperatorConnect_select_operator,
                                    Resources.RetryText, 5);
                return;
            }

            if (availibleOperators.AvailableOperators.Count == 1)
            {
                var operatorName = availibleOperators.AvailableOperators.Single().DisplayName;
                await OnOperatorSelected(context, new AwaitableFromItem <string>(operatorName));

                return;
            }

            await context.SayAsync(Resources.OperatorSelection_none_availible);

            context.Done <AvailableOperatorInfo>(null);
        }
コード例 #2
0
        private async Task OnAvailibleOperatorsResponse(IDialogContext context, GetAvailableOperatorsResponse result)
        {
            availibleOperators = result;
            availibleOperators.AvailableOperators =
                availibleOperators.AvailableOperators.DistinctBy(ope => ope.DisplayName).ToList();
            if (availibleOperators.AvailableOperators.Count > 1)
            {
                var operatorNames = availibleOperators.AvailableOperators.Select(ope => ope.DisplayName).ToList();
                operatorNames.Sort();
                await context.SayAsync(
                    $"K dispozici jsou: {string.Join(", ", operatorNames.Take(operatorNames.Count - 1))} a {operatorNames.Last()}");

                operatorNames.Add(Resources.OperatorSelection_not_interesed);
                PromptDialog.Choice(context, OnOperatorSelected, operatorNames, $"S kým byste chtěl mluvit?",
                                    Resources.RetryText, 5);
                return;
            }

            if (availibleOperators.AvailableOperators.Count == 1)
            {
                var operatorName = availibleOperators.AvailableOperators.Single().DisplayName;
                PromptDialog.Choice(context,
                                    (dialogContext, subResult) => OnSingleOperatorConfirmed(dialogContext, subResult, operatorName),
                                    new[] { "Mluvit", Resources.OperatorSelection_not_interesed }, $"K dispozici je {operatorName}.",
                                    Resources.RetryText, 2);
                return;
            }

            await context.SayAsync(Resources.OperatorSelection_none_availible);

            context.Done <AvailableOperatorInfo>(null);
        }