private async Task ShowOrders(IDialogContext context) { AuthUser authUser = await identityService.GetAuthUserAsync(context); if (authUser != null && !authUser.IsExpired) { await ShowDesired(context, authUser); } else { context.Call(dialogFactory.CreateLoginDialog(), ExecutedLoginAsync); } }
private async Task ShowBasket(IDialogContext context) { var authUser = await identityService.GetAuthUserAsync(context); // TODO check Expired if (authUser != null) { var basket = await basketService.GetBasket(authUser.UserId, authUser.AccessToken); var reply = context.MakeMessage(); reply.Attachments = new List <Attachment> { RecipeCard(context, basket) }; await context.PostAsync(reply); context.Wait(MessageReceivedAsync); } else { context.Call(dialogFactory.CreateLoginDialog(), ExecutedLoginAsync); } }
public Task Login(IDialogContext context, LuisResult result) { context.Call(dialogFactory.CreateLoginDialog(), ResumeAfterLoginDialog); return(Task.CompletedTask); }
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument) { var message = await argument; if (message.IsValidTextMessage()) { try { var json = JObject.Parse(message.Text); var action = json.GetValue("ActionType"); switch (action.ToString()) { case BotActionTypes.NextPage: _currentPage++; await ShowCatalog(context); context.Wait(MessageReceivedAsync); break; case BotActionTypes.PreviousPage: _currentPage--; await ShowCatalog(context); context.Wait(MessageReceivedAsync); break; case BotActionTypes.AddBasket: await AskQuantity(context, json); break; case BotActionTypes.Login: context.Call(dialogFactory.CreateLoginDialog(), LoginReceivedAsync); break; case BotActionTypes.Back: await context.PostAsync(TextResources.Type_what_do_you_want_to_do); context.Done <object>(null); break; } } catch (JsonReaderException) { // not valid JSON object await context.PostAsync(TextResources.Please_make_a_selection); await ShowCatalog(context); context.Wait(MessageReceivedAsync); } } else { var content = await HandleAttachments(context, message); if (content != null) { _filter.Tags = await productSearchImageService.ClassifyImageAsync(content); await StartAsync(context); } else { await context.PostAsync(TextResources.Please_make_a_selection); await ShowCatalog(context); context.Wait(MessageReceivedAsync); } } }