public static async Task AddComparator(IDialogContext context, string message) { string[] parts = message.Split(':'); var product = parts[1].Replace(" ", ""); if (parts.Length >= 2) { List <string> items = StateHelper.GetComparatorItems(context); if (ComparatorLogic.MAX_PRODUCTS_ON_COMPARATOR <= items.Count) { await context.PostAsync("Lamento mas só consigo avaliar até " + ComparatorLogic.MAX_PRODUCTS_ON_COMPARATOR.ToString() + " produtos."); } else { Product productToAdd = ProductController.getProduct(product); var reply = context.MakeMessage(); reply.Text = String.Format(Interactions.getAddComparator()); await context.PostAsync(reply); StateHelper.AddItemComparator(context, product); } } }
public async Task Compare(IDialogContext context) { // fetch products var itemsToCompare = StateHelper.GetComparatorItems(context); foreach (string o in itemsToCompare) { products.Add(ProductController.getProduct(o.ToString())); } if (products.Count > 0) { var reply = context.MakeMessage(); reply.Text = Interactions.getOngoingComp(); await context.PostAsync(reply); ComparatorLogic.ShowProductComparison(context, products); /* * //show options * if(products.Count <= ComparatorLogic.MAX_PRODUCTS_ON_COMPARATOR) * { * reply = context.MakeMessage(); * reply.Attachments.Add(getCardButtonsAttachment( * new List<ButtonType> { ButtonType.ADD_PRODUCT }, DialogType.COMPARE)); * await context.PostAsync(reply); * }*/ } else { await context.PostAsync("Não tem produtos para comparar."); //show options var reply = context.MakeMessage(); reply.Attachments.Add(getCardButtonsAttachment( new List <ButtonType> { ButtonType.ADD_PRODUCT }, DialogType.COMPARE)); await context.PostAsync(reply); } }
public async Task InitAsync(IDialogContext context, IAwaitable <IMessageActivity> activity) { List <ButtonType> buttons = new List <ButtonType>(); // fetch products var itemsToCompare = StateHelper.GetComparatorItems(context); foreach (string o in itemsToCompare) { products.Add(ProductController.getProduct(o)); } var reply = context.MakeMessage(); string intro_msg = "Bem-vindo ao comparador. Aqui posso dar-lhe sugestões sobre quais os melhores produtos que deseja comparar."; string button_msg = ""; if (products.Count > 0) { intro_msg = "\nVou buscar os produtos em que demonstrou interesse em avaliar. Espere só um momento por favor."; await Interactions.SendMessage(context, intro_msg, 0, 0); //display products reply = context.MakeMessage(); reply.AttachmentLayout = AttachmentLayoutTypes.Carousel; List <Attachment> cards = new List <Attachment>(); //limit for (var i = 0; i < products.Count && i < Constants.N_ITEMS_CARROUSSEL; i++) { cards.Add(ProductCard.GetProductCard(products[i], ProductCard.CardType.COMPARATOR).ToAttachment()); } reply.Attachments = cards; await Interactions.SendMessage(context, "Aqui estão os produtos:", 4000, 2000); await context.PostAsync(reply); if (products.Count <= ComparatorLogic.MAX_PRODUCTS_ON_COMPARATOR) { buttons.Add(ButtonType.ADD_PRODUCT); } buttons.Add(ButtonType.COMPARE); button_msg = "Se quiser posso fazer uma avaliação dos produtos, clique no botão abaixo para que eu iniciar a comparação."; } else { intro_msg = "\nDe momentos ainda não adicionou nenhum produto para ser avaliado."; await Interactions.SendMessage(context, intro_msg, 0, 3000); buttons.Add(ButtonType.ADD_PRODUCT); } button_msg += "\nSe tiver interesse em adicionar produtos para serem avaliados, faça uma pesquisa no nosso catálogo. Para isto, clique no botão abaixo para preencher um formulário de pesquisa."; await Interactions.SendMessage(context, button_msg, 3000, 2000); //show options reply = context.MakeMessage(); reply.Attachments.Add(getCardButtonsAttachment(buttons, DialogType.COMPARE)); await context.PostAsync(reply); context.Wait(InputHandler); }