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); }
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); }