protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var _lineText = turnContext.Activity.Text.ToLower(); var matchFound = DialogEnum.Words.ReservedStrings.Where(w => _lineText.Contains(w)).FirstOrDefault(); if (matchFound != null) { switch (matchFound) { case DialogEnum.Words.Meniu: var attachments = new List <Attachment>(); var replyToConversation = MessageFactory.Attachment(attachments); replyToConversation.AttachmentLayout = AttachmentLayoutTypes.Carousel; userDataService = new UserDataService(configuration); var _data = userDataService.GetMenuItems(); foreach (var item in _data) { replyToConversation.Attachments.Add(GetHeroCard(item).ToAttachment()); } await turnContext.SendActivityAsync(replyToConversation, cancellationToken); //reply.Type = ActivityTypes.Typing; //reply.Text = null; //await turnContext.SendActivityAsync(reply, cancellationToken); //userDataService = new UserDataService(configuration); //var _data = userDataService.GetMenuItems(); //AdaptiveCard adaptiveCard = BuildMenuAdaptiveCard(_data); //var heroCard = BuildMenuHeroCard(_data); //var _menuCard = CreateAdaptiveCardAttachment(adaptiveCard); //var response = MessageFactory.Attachment(_menuCard); //await turnContext.SendActivityAsync(response, cancellationToken); break; case DialogEnum.Words.Total: userDataService = new UserDataService(configuration); decimal _total = userDataService.WeeklyTotal(turnContext.Activity.From.Name); if (_total > 0) { await turnContext.SendActivityAsync(new Activity() { Type = ActivityTypes.Message, Text = $"{turnContext.Activity.From.Name}, suma comenzilor pentru saptamana aceasta este: {_total} Lei" }, cancellationToken); } else { await turnContext.SendActivityAsync(new Activity() { Type = ActivityTypes.Message, Text = $"{turnContext.Activity.From.Name}, nu ai comandat nimic pana acum" }, cancellationToken); } break; case DialogEnum.Words.Del: userDataService = new UserDataService(configuration); userDataService.DeleteOrder(turnContext.Activity.From.Name); await turnContext.SendActivityAsync(new Activity() { Type = ActivityTypes.Message, Text = $"{turnContext.Activity.From.Name}, comanda ta a fost stearsa" }, cancellationToken); break; case DialogEnum.Words.Test: break; } } else { string line = turnContext.Activity.Text.ToLower(); string user = turnContext.Activity.From.Name; string comanda = string.Empty; userDataService = new UserDataService(configuration); if (ProcessLine(line, user, userDataService, out comanda)) { await turnContext.SendActivityAsync(new Activity() { Type = ActivityTypes.Message, Text = $"Comanda pentru {user} este: {comanda}" }, cancellationToken); } } }