private void UpdateCards(CardDataModel card) { var index = CardDataCollection.IndexOf(card); CardDataCollection.Remove(card); CardDataCollection.Insert(index, card); }
public Page1ViewModel(CardDataModel cardDataModel) { Item = cardDataModel; Task.Run(async() => await SomeTask()); }
public Attachment GetStore(AdaptiveCardDataFactory dataFactory, string orderId) { var MenuId = dataFactory.GetCardData <StoreOrderDuetime>().MenuID; var Store = dataFactory.GetCardData <StoreOrderDuetime>().StoreName; var DueTime = JObject.FromObject(dataFactory.Request.Data).GetValue("DueTime").ToString(); var cardData = new CardDataModel <StoreOrderDuetime>() { Type = "GetCustomizedMenu", Value = new StoreOrderDuetime { OrderID = orderId, MenuID = MenuId, StoreName = Store, DueTime = DueTime } }; //包資料到Submit Action, Type是給EchoBot判斷用的字串,Value是要傳遞資料 var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 2)); var actionSet = new AdaptiveActionSet() { Type = AdaptiveActionSet.TypeName, Separator = true }; var TextBlockStorName = new AdaptiveTextBlock { Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, Text = Store, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }; card.Body.Add(TextBlockStorName); actionSet.Actions.Add(new AdaptiveSubmitAction().SetOpenTaskModule("Join", JsonConvert.SerializeObject(cardData))); card.Body.Add(actionSet); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
//此方法已被CreateStoresModule取代 // private Attachment CreateClickStoreModule(string Jdata) // { // var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 2)); // // var TextBlockStorName = new AdaptiveTextBlock // { // Size = AdaptiveTextSize.Large, // Weight = AdaptiveTextWeight.Bolder, // Text = "Chose Your Order", // HorizontalAlignment = AdaptiveHorizontalAlignment.Center // }; // card.Body.Add(TextBlockStorName); // // var root = JsonConvert.DeserializeObject<Store_List>(Jdata); // // foreach (var s in root.Stores) // { // var ColumnSetitem = new AdaptiveColumnSet(); // StoreModule(ColumnSetitem, s.Store_Name, s.Store_Url); // card.Body.Add(ColumnSetitem); // } // // //選擇時間 // var InputTime = new AdaptiveTimeInput(); // InputTime.Id = "DueTime"; // card.Body.Add(InputTime); // // card.Actions = new[] { TaskModuleUIConstants.AdaptiveCard } // .Select(cardType => new AdaptiveSubmitAction() { Title = "Submit", Data = new AdaptiveCardTaskFetchValue<string>() { SetType = "ResultStoreCard" } }) // .ToList<AdaptiveAction>(); // return new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }; // } public async Task <Attachment> CreateStoresModule(AdaptiveCardDataFactory factory, string reserve) { var address = factory.GetCardData <string>(); var LatLng = GetLatLng(address); var storesInfo = await new WebCrawler().GetStores2(LatLng.lat, LatLng.lng); var cardData = new CardDataModel <List <Store> >(); if (reserve == null) { cardData.Type = "ResultStoreCard"; } else { cardData.Type = reserve; } var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock { Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, Text = "Chose Your Order", HorizontalAlignment = AdaptiveHorizontalAlignment.Center }); foreach (var store in storesInfo) { card .AddRow(new AdaptiveColumnSet() .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextBlock() { Text = store.Store_Name, Id = "StoreName" })) .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextBlock() { Text = store.Store_Url, Id = "Url" })) .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveToggleInput() { Id = store.Store_Name + "&&" + store.Store_Url, Title = "Confirm" }))); } card .AddElement(new AdaptiveTextInput() { Id = "DueTime" }) .AddActionsSet( NewActionsSet() .AddActionToSet(new AdaptiveSubmitAction().SetSubmitTaskModule("Submit", JsonConvert.SerializeObject(cardData)))); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
/// <summary> /// 製作收藏庫的餐廳卡片 /// </summary> /// <param name="name">餐廳名稱</param> /// <param name="menuUrl">餐廳網址</param> /// <returns>可收藏的團購卡片</returns> public Attachment GetStore(StoreOrderDuetime OrderInfo) { var cardData = new CardDataModel <StoreOrderDuetime>() { Type = "OpenMenuTaskModule", Value = OrderInfo }; var objData = new Data() { msteams = new Msteams() { type = "invoke", value = new MsteamsValue() { Name = OrderInfo.StoreName, Url = OrderInfo.Url, Option = "Create" } } }; //var DeleteOrderData = new Data() //{ // msteams = new Msteams() // { // type = "invoke", // value = new MsteamsValue() // { // OrderId = Guid.Parse(OrderInfo.OrderID), // Option = "DeleteOrder" // } // } //}; var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() { Text = OrderInfo.StoreName, Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }) .AddActionsSet( NewActionsSet() .AddActionToSet(new AdaptiveSubmitAction().SetOpenTaskModule("Join", JsonConvert.SerializeObject(cardData))) .AddActionToSet(new AdaptiveSubmitAction() { Title = "Favorite", Data = objData }) //ting //.AddActionToSet(new AdaptiveSubmitAction() { Title = "Delete", Data = DeleteOrderData }) ); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public Attachment CallCustomeCard(string Id = null) { var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 2)); var cardData = new CardDataModel <string>() { Type = "createmenu", Value = Id }; var ColumnSet = new AdaptiveColumnSet(); card.Body.Add(ColumnSet); var Column1 = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Stretch }; ColumnSet.Columns.Add(Column1); var Column2 = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Stretch }; ColumnSet.Columns.Add(Column2); var ActionSet1 = new AdaptiveActionSet(); ActionSet1.Actions.Add(new AdaptiveSubmitAction() { Title = "Create Store", Data = new AdaptiveCardTaskFetchValue <string>() { Data = JsonConvert.SerializeObject(cardData) } }); Column1.Items.Add(ActionSet1); var ActionSet2 = new AdaptiveActionSet(); card.Actions.Add(new AdaptiveShowCardAction() { Title = "View Store", Card = StoreListAdaptiveCard() }); Column2.Items.Add(ActionSet2); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
private void GenerateCardModel() { for (var i = 0; i < 20; i++) { var cardData = new CardDataModel() { Title = "CardRow-No" + i, Owner = "Card-No" + i, AlertColor = i % 2 == 0 ? Color.Green : Color.Blue, }; CardDataCollection.Add(cardData); } }
// Will be called when user triggers messaging extension protected override async Task <MessagingExtensionActionResponse> OnTeamsMessagingExtensionFetchTaskAsync(ITurnContext <IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken) { AdaptiveCard adaptiveCardEditor; try { // create task action var cardModel = new CardDataModel(); if (action.CommandId.Equals("CreateCalendarEvent")) { var taskTitle = "Enter Task Title";; if (action.MessagePayload.Body.Content.ToString().Contains("attachment id")) { var temp = action.MessagePayload.Attachments[0].Content.ToString(); var objAttachment = JsonConvert.DeserializeObject <CCCardAttachmentModel>(temp); taskTitle = objAttachment.body[0].text; } else { taskTitle = action.MessagePayload.Body.Content.ToString(); } cardModel.TaskTitle = taskTitle; } adaptiveCardEditor = AdaptiveCardHelper.CreateCardCalendarEventInputs(cardModel); } catch (Exception ex) { throw ex; } return(await Task.FromResult(new MessagingExtensionActionResponse { Task = new TaskModuleContinueResponse { Value = new TaskModuleTaskInfo { Card = new Microsoft.Bot.Schema.Attachment { Content = adaptiveCardEditor, ContentType = AdaptiveCard.ContentType, }, Height = 350, Width = 400, Title = "Event Creation", }, }, })); //Needs to be replaced with OAuth Prompt }
//ting paymenturl public Attachment ReplyPayment(PayMentService payment, ITurnContext turnContext) { var name = turnContext.Activity.From.Name; var memberId = turnContext.Activity.From.Id; var url = payment.GetPay(memberId).Url; var cardData = new CardDataModel <StoreInfoData>() //務必按照此格式新增需要傳出去的資料 { Type = "ReplyPayment", //於EchoBot判斷用 Value = new StoreInfoData() { } //要傳出去的資料和資料結構 }; var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() { Text = "Payment", Size = AdaptiveTextSize.Large, Color = AdaptiveTextColor.Good, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }) .AddElement(new AdaptiveTextBlock() { Text = url, Size = AdaptiveTextSize.Medium, }) .AddElement(new AdaptiveTextBlock() { Text = name, Size = AdaptiveTextSize.Small, Color = AdaptiveTextColor.Dark, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
private void Button_Clicked(object sender, EventArgs e) { string headline = post_title.Text; string description = post_text.Text; string headtitle = "Posted by: " + GlobalVariables.current_user; string profileImage = ""; CardDataModel card = new CardDataModel { HeadTitle = headtitle, HeadLines = headline, HeadLinesDesc = description, ProfileImage = profileImage }; CardDataViewModel cardview = new CardDataViewModel(); cardview.AddCardModel(card); PopupNavigation.Instance.PopAsync(true); }
public Attachment CreateMenuOrderAttachment(string teamsId) { // combine path for cross platform support var paths = new[] { ".", "Resources", "MenuOrderCard.json" }; var libraryCardJson = File.ReadAllText(Path.Combine(paths)); var myCard = JsonConvert.DeserializeObject <AdaptiveCard>(libraryCardJson); var menuOrder = FindMenuOrderByTeamsId(teamsId).ToList(); myCard.AddElement(new AdaptiveTextInput() { Id = "DueTime" }); menuOrder.ForEach(item => { var cardData = new CardDataModel <StoreOrderDuetime>() { Type = "GetCustomizedStore", Value = new StoreOrderDuetime { MenuID = item.MenuId.ToString(), StoreName = item.Store } }; //包資料到Submit Action, Type是給EchoBot判斷用的字串,Value是要傳遞資料 ((AdaptiveChoiceSetInput)myCard.Body[1]).Choices.Add(new AdaptiveChoice() { Title = item.Store, Value = JsonConvert.SerializeObject(cardData) }); }); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = myCard }; return(adaptiveCardAttachment); }
private CardDataModel MakeReceiveCardData(object cardData, BattleMgrBase mgr, WatchDataHandler handler) { Dictionary <string, object> dictionary = cardData as Dictionary <string, object>; CardDataModel cardDataModel = new CardDataModel(); if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.idx.ToString())) { cardDataModel.Index = Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.idx.ToString()]); } else { Debug.LogError("BaseMakeReceiveCardData Not idx ", null); } if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.card_id.ToString())) { cardDataModel.CardId = Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.card_id.ToString()]); } if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.to.ToString())) { cardDataModel.toState = (RealTimeNetworkBattleAgent.NetworkCardPlaceState)Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.to.ToString()]); } if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.isSelf.ToString())) { cardDataModel.isSelf = (Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.isSelf.ToString()]) != 1); } if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.skillIdx.ToString())) { cardDataModel.skillIndex = Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.skillIdx.ToString()]); } if (dictionary.ContainsKey(RealTimeNetworkBattleAgent.MoveListParam.cost.ToString())) { cardDataModel.playCardCost = Convert.ToInt32(dictionary[RealTimeNetworkBattleAgent.MoveListParam.cost.ToString()]); } if (mgr != null) { cardDataModel.fromState = NetworkBattleTool.GetCardPlaceState(mgr.GetBattlePlayer(cardDataModel.isSelf), cardDataModel.Index); } return(cardDataModel); }
public void HideOrShowCard(CardDataModel card) { if (_previousCard == card) { //clicking twice on same item will hide it card.IsVisible = !card.IsVisible; UpdateCards(card); } else { if (_previousCard != null) { //hide previous selected item _previousCard.IsVisible = false; UpdateCards(_previousCard); } //show selected item card.IsVisible = true; UpdateCards(card); } _previousCard = card; }
// 此方法已被GetChooseMenuCard取代 // private Attachment GetStore(string Address, string StoreData) // { // var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 2)); // var actionSet = new AdaptiveActionSet() { Type = AdaptiveActionSet.TypeName, Separator = true }; // var TextBlockStorName = new AdaptiveTextBlock // { // Size = AdaptiveTextSize.Large, // Weight = AdaptiveTextWeight.Bolder, // Text = Address, // HorizontalAlignment = AdaptiveHorizontalAlignment.Center // }; // card.Body.Add(TextBlockStorName); // // actionSet.Actions.Add(new AdaptiveSubmitAction() { Title = "Confirm", Data = new AdaptiveCardTaskFetchValue<string>() { Data = StoreData, SetType = "GetStore" } }); // card.Body.Add(actionSet); // return new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }; // } public Attachment GetChooseMenuCard(string address, bool reserve) { var cardData = new CardDataModel <string>() { Type = reserve? "reserveStore" : "GetStore", Value = address }; var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock { Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, Text = address, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }) .AddActionsSet( NewActionsSet() .AddActionToSet(new AdaptiveSubmitAction().SetOpenTaskModule("Choose Menu", JsonConvert.SerializeObject(cardData))) ); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public Attachment GetCustomizedModification(string Store, List <MenuDetail> menuDetails, string MenuId) { var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 2)); string[] ItemsStoreName = new string[] { Store, "" }; card.Body.Add(new OrderfoodServices().FixedInputTextAdjustWidthColumn(ItemsStoreName)); string[] ItemsName = new string[] { "Food Name", "Price" }; var ColumnSetitemname = new OrderfoodServices().FixedtextColumn(ItemsName); card.Body.Add(ColumnSetitemname); for (var i = 0; i < menuDetails.Count; i++) { var ColumnSetitem = new AdaptiveColumnSet(); ColumnSetitem.Columns.Add(new OrderfoodServices().AddColumn(new OrderfoodServices().GetadaptiveText(menuDetails[i].ProductName + i.ToString(), menuDetails[i].ProductName))); ColumnSetitem.Columns.Add(new OrderfoodServices().AddColumn(new OrderfoodServices().GetadaptiveText(menuDetails[i].Amount + i.ToString(), decimal.Round(menuDetails[i].Amount).ToString()))); card.Body.Add(ColumnSetitem); } var cardData = new CardDataModel <string>() { Type = "CustomizedModification", Value = MenuId }; card.Actions = new[] { TaskModuleUIConstants.AdaptiveCard } .Select(cardType => new AdaptiveSubmitAction() { Title = cardType.ButtonTitle, Data = new AdaptiveCardTaskFetchValue <string>() { Data = JsonConvert.SerializeObject(cardData) } }) .ToList <AdaptiveAction>(); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public static AdaptiveCard CreateCardCalendarEventInputs(CardDataModel cardModel) { // DateTime dueStartDate = new Date DateTime dueDateStart = DateTime.Now; DateTime dueDateEnd = dueDateStart.AddDays(1); var card = new AdaptiveCard(new AdaptiveSchemaVersion("1.2")) { Body = new List <AdaptiveElement> { new AdaptiveContainer() { Items = new List <AdaptiveElement>() { new AdaptiveTextBlock() { Id = "Header", Text = "Enter Calendar Event Details", Weight = AdaptiveTextWeight.Bolder }, } } }, }; card.Body.Add(new AdaptiveTextBlock() { Id = "LabelTitle", Text = "Event Title" }); card.Body.Add(new AdaptiveTextInput() { Id = "Title", Value = cardModel.TaskTitle, IsVisible = true }); card.Body.Add(new AdaptiveTextBlock() { Id = "LabelDetails", Text = "Event Details" }); card.Body.Add(new AdaptiveTextInput() { Id = "Details", Placeholder = "Enter Event Details", IsVisible = true }); // Row 2 var colSet = new AdaptiveColumnSet(); var col1 = new AdaptiveColumn(); col1.Width = "100"; col1.Items.Add(new AdaptiveTextBlock() { Id = "LabelStartDt", Text = "Start Date", IsVisible = true }); var col2 = new AdaptiveColumn(); col2.Width = "100"; col2.Items.Add(new AdaptiveDateInput() { Id = "StartDt", Placeholder = "Select Date", Value = dueDateStart.ToString() }); var col3 = new AdaptiveColumn(); col3.Width = "100"; col3.Items.Add(new AdaptiveTimeInput() { Id = "StartTime", Placeholder = "Select Time", }); colSet.Columns.Add(col1); colSet.Columns.Add(col2); colSet.Columns.Add(col3); card.Body.Add(colSet); // Row 3 var colSet2 = new AdaptiveColumnSet(); var col21 = new AdaptiveColumn(); col21.Width = "100"; col21.Items.Add(new AdaptiveTextBlock() { Id = "LabelDuration", Text = "Event Duration", IsVisible = true }); var col22 = new AdaptiveColumn(); col22.Width = "100"; col22.Items.Add(new AdaptiveChoiceSetInput { Id = "EventDuration", Style = AdaptiveChoiceInputStyle.Compact, Value = "EventDuration", IsMultiSelect = false, Choices = new List <AdaptiveChoice> { new AdaptiveChoice() { Title = "15 mins", Value = "15" }, new AdaptiveChoice() { Title = "30 mins", Value = "30" }, new AdaptiveChoice() { Title = "45 mins", Value = "45" }, new AdaptiveChoice() { Title = "1 hr", Value = "60" }, new AdaptiveChoice() { Title = "2 hr", Value = "120" }, new AdaptiveChoice() { Title = "3 hr", Value = "180" }, }, } ); var col23 = new AdaptiveColumn(); col23.Width = "100"; col23.Items.Add(new AdaptiveTextBlock() { Id = "LabelDummy2", Text = "", IsVisible = false }); colSet2.Columns.Add(col21); colSet2.Columns.Add(col22); colSet2.Columns.Add(col23); card.Body.Add(colSet2); var actionItem = new AdaptiveActionSet() { Id = "SubmitCalendarEvent", Actions = new List <AdaptiveAction> { new AdaptiveSubmitAction { Type = AdaptiveSubmitAction.TypeName, Title = "Create Calendar Event", Id = "SubmitCalendarEvent", Data = new JObject { { "Type", "CalendarEvent" } }, }, }, }; card.Body.Add(actionItem); return(card); }
public void LoadCardActions(CardDataModel cardDataModel) { var aux = cardDataModel.ToActionCard(); actionCard = aux; }
public Attachment GetCustomizedModification(AdaptiveCardDataFactory dataFactory) { TeamsBuyContext context = new TeamsBuyContext(); var MenuId = dataFactory.GetCardData <ModifyData>().MenuId; var menuDetails = new MenuDetailService(context).GetMenuOrder(MenuId).ToList(); var MenuOrderStore = new MenuService(context).GetMenuOrder(MenuId).Store; var ModifyData = new CardDataModel <ModifyData>() { Type = "CustomizedModification", Value = new ModifyData() { MenuId = MenuId } }; string[] ItemsName = new string[] { "Food Name", "Price" }; var card = NewAdaptiveCard() .AddRow(new AdaptiveColumnSet() { Separator = true } .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextInput() { Id = MenuOrderStore + "1", Value = MenuOrderStore })) .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextBlock() { Text = "" }) )) .AddRow(new AdaptiveColumnSet(). AddColumnsWithStrings(ItemsName) ); for (var i = 0; i < menuDetails.Count; i++) { card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextInput() { Id = menuDetails[i].ProductName + i.ToString(), Value = menuDetails[i].ProductName }) //在欄位內加入餐點名稱的文字 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextInput() { Id = menuDetails[i].Amount + i.ToString(), Value = decimal.Round(menuDetails[i].Amount).ToString() }) //加入餐點價格 ) ); } card .AddActionsSet( NewActionsSet() .AddActionToSet( new AdaptiveSubmitAction().SetOpenTaskModule("Edit", JsonConvert.SerializeObject(ModifyData)) //勿必要將傳出去的資料進行Serialize ) ); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public static AdaptiveCard CreateCardToDoTaskInputs(CardDataModel cardModel) { // DateTime dueStartDate = new Date DateTime dueDateStart = DateTime.Now; DateTime dueDateEnd = dueDateStart.AddDays(1); return(new AdaptiveCard(new AdaptiveSchemaVersion("1.2")) { Body = new List <AdaptiveElement> { new AdaptiveContainer() { Items = new List <AdaptiveElement>() { new AdaptiveTextBlock() { Id = "Header", Text = "Enter New ToDo Task Details", Weight = AdaptiveTextWeight.Bolder }, new AdaptiveTextBlock() { Id = "TitleText", Text = "ToDo Task Title" }, new AdaptiveTextInput() { Id = "Title", Value = cardModel.TaskTitle, IsVisible = true }, new AdaptiveTextBlock() { Id = "TitleStartDt", Text = "Start Date", IsVisible = true }, new AdaptiveDateInput() { Id = "StartDate", Placeholder = "Start date", Value = dueDateStart.ToString(), IsVisible = true }, new AdaptiveTextBlock() { Id = "TitleDueDt", Text = "Due Date", IsVisible = true }, new AdaptiveDateInput() { Id = "DueDate", Placeholder = "Due date", Value = dueDateEnd.ToString() }, new AdaptiveActionSet() { Id = "SubmitToDoAction", Actions = new List <AdaptiveAction> { new AdaptiveSubmitAction { Type = AdaptiveSubmitAction.TypeName, Title = "Create ToDo Task", Id = "SubmitToDoTask", Data = new JObject { { "Type", "ToDoTask" } }, }, }, }, } } }, }); }
public StrategieDetailViewModel(CardDataModel item) { StrategieItem = item; }
public Attachment GetResultTotal(string OrderId, string StoreName, string Orderfoodjson, string DueTime) { string[] ItemsName = new string[] { "Food Name", "Price", "Quantity", "Remarks", "Total" }; var ResultTotalData = new ResultTotalModule(); var ResultTotalItems = new List <ResultTotalItemsGroupModule>(); ResultTotalData.OrderId = OrderId; ResultTotalData.StoreName = StoreName; ResultTotalData.DueTime = DueTime; //新增一基本卡片,並且附加此訂單的Guid、餐廳名稱、欄位名稱等文字訊息 var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() //加入訂單Guid { Text = OrderId, Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddElement(new AdaptiveTextBlock() //加入餐廳名稱 { Text = StoreName + "訂單", Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddColumnsWithStrings(ItemsName) //加入欄位名稱到一列 ); var root = JsonConvert.DeserializeObject <AllTotalItemsGroups>(Orderfoodjson); //此訂單的總花費 decimal TotalMoney = 0; for (int i = 0; i < root.AllTotalItems.Count; i++) { for (int j = 0; j < 1; j++) { int TotalQuantity = 0; string TotalOrderName = ""; decimal TotalMoneyItem = 0; for (int z = 0; z < root.AllTotalItems[i].TotalItemsGroup.Count; z++) { var TotalSungleMoney = GetTotalMoney(root.AllTotalItems[i].TotalItemsGroup[z].Quantity.ToString(), root.AllTotalItems[i].Price.ToString()); TotalMoneyItem = TotalMoneyItem + TotalSungleMoney; var QuantityInt = root.AllTotalItems[i].TotalItemsGroup[z].Quantity; TotalQuantity = TotalQuantity + QuantityInt; var OrderName = root.AllTotalItems[i].TotalItemsGroup[z].UserName; TotalOrderName = TotalOrderName + "," + OrderName; } TotalMoney = TotalMoney + TotalMoneyItem; var TotalItemMoney = root.AllTotalItems[i].Price * TotalQuantity; card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = root.AllTotalItems[i].Dish_Name }) //在欄位內加入餐點名稱的文字 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(root.AllTotalItems[i].Price).ToString() }) //加入餐點價格 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = TotalQuantity.ToString() }) //加入餐點數量 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = TotalOrderName.TrimStart(',') }) //加入備註 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(TotalItemMoney).ToString() }) //加入此餐點的總價 ) ); ResultTotalItems.Add(new ResultTotalItemsGroupModule() { Dish_Name = root.AllTotalItems[i].Dish_Name, Price = root.AllTotalItems[i].Price, TotalQuantity = TotalQuantity, TotalOrderName = TotalOrderName.TrimStart(','), TotalItemMoney = TotalItemMoney }); } } ResultTotalData.AllTotalItems = ResultTotalItems; ResultTotalData.TotalMoney = TotalMoney; var ResultTotalCardData = new CardDataModel <ResultTotalModule>() //務必按照此格式新增需要傳出去的資料 { Type = "GetResultTotalFromModule", //於EchoBot判斷用 Value = ResultTotalData //要傳出去的資料和資料結構 }; string[] TimeAndTotalMoney = new string[] { "DueTime", DueTime, "", "Total Amount:", decimal.Round(TotalMoney).ToString() }; card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .FixedtextColumnLeftColor(TimeAndTotalMoney) //加入欄位名稱到一列 ) .AddActionsSet( NewActionsSet() .AddActionToSet( new AdaptiveSubmitAction().SetOpenTaskModule("View", JsonConvert.SerializeObject(ResultTotalCardData)) //勿必要將傳出去的資料進行Serialize )); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
// Adds a new card to the database, Wrapper Method public async void AddCardModel(CardDataModel card) { await App.Database.SaveArticleAsync(card); }
//ting create menu detail public Attachment GetCreateMenuDetail(string storeId) { var guid = storeId; var cardData = new CardDataModel <StoreInfoData>() //務必按照此格式新增需要傳出去的資料 { Type = "GetCustomizedMenuDetail", //於EchoBot判斷用 Value = new StoreInfoData() { Guid = guid } //要傳出去的資料和資料結構 }; var itemsName = new string[] { "Name", "Price" }; var card = NewAdaptiveCard() .AddRow(new AdaptiveColumnSet() { Separator = true } .AddCol(new AdaptiveColumn() { Width = "80" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "Name", Color = (AdaptiveTextColor)5 })) //Input相關的一定要給ID,且每個ID必須不一樣,否則傳回TaskModuleSubmit的時候會抓不到 .AddCol(new AdaptiveColumn() { Width = "20" } .AddElement(new AdaptiveTextBlock() { Text = "Price", Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Color = (AdaptiveTextColor)5 })) ); for (int i = 0; i < 20; i++) { card .AddRow(new AdaptiveColumnSet() { Separator = true } .AddCol(new AdaptiveColumn() { Width = "65" } .AddElement(new AdaptiveTextInput() { Placeholder = "Name", Id = $"name&{i}" })) //Input相關的一定要給ID,且每個ID必須不一樣,否則傳回TaskModuleSubmit的時候會抓不到 .AddCol(new AdaptiveColumn() { Width = "3" } .AddElement(new AdaptiveTextBlock() { Text = "$", Size = (AdaptiveTextSize)3, HorizontalAlignment = (AdaptiveHorizontalAlignment)2 })) .AddCol(new AdaptiveColumn() { Width = "20" } .AddElement(new AdaptiveNumberInput() { Placeholder = "Price", Id = $"price&{i}" })) //Input相關的一定要給ID,且每個ID必須不一樣,否則傳回TaskModuleSubmit的時候會抓不到 ); } card .AddActionsSet( NewActionsSet() .AddActionToSet( new AdaptiveSubmitAction().SetSubmitTaskModule("Create", JsonConvert.SerializeObject(cardData)) //勿必要將傳出去的資料進行Serialize ) ); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public Attachment GetChosenFoodFromMenu(AdaptiveCardDataFactory dataFactory) { var orderData = dataFactory.GetOrderedFoods(); //使用者的訂購資訊 if (orderData == null) //防呆:使用者在數量那邊輸入負值 { return(GetError("The numbers of products in the order cannot be negative.")); } else if (orderData.Count == 0)//防呆:使用者沒有點任何東西就submit { return(GetError("You order nothing.")); } var itemsName = new string[] { "食物名稱", "價錢", "數量", "備註", "單品總金額" }; //顯示於TaskModule上方的欄位名稱 var cardData = dataFactory.GetCardData <StoreOrderDuetime>(); var ChosencardData = new GetChosenData(); var GetAllChosenDataGroups = new List <GetChosenDataGroups>(); ChosencardData.UserID = dataFactory.TurnContext.Activity.From.Id; ChosencardData.DueTime = cardData.DueTime; ChosencardData.StoreName = cardData.StoreName; ChosencardData.UserName = dataFactory.TurnContext.Activity.From.Name; //新增一基本卡片,並且附加此訂單的Guid、餐廳名稱、欄位名稱等文字訊息 var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() //加入訂單Guid { Text = cardData.OrderID, Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddElement(new AdaptiveTextBlock() //加入餐廳名稱 { Text = cardData.StoreName + "訂單", Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddColumnsWithStrings(itemsName) //加入欄位名稱到一列 ); //此訂單的總花費 decimal totalMoney = 0; //將SelectMenuDatagroup的資訊(菜色名稱、單價、數量、備註、總額),逐一附加到卡片內 foreach (var p in orderData) { //如果沒有這道菜點餐,那就不用計算、也不用顯示 if (p.Quantity != "0") { //獲取此餐點的總價:數量x單價 var totalSingleMoney = GetTotalMoney(p.Quantity, p.Price); //將此餐點的總額計入此訂單的總價 totalMoney += totalSingleMoney; //在卡片內加入一列,在一列中加入五個欄位並猜入不同資訊 card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = p.Dish_Name }) //在欄位內加入餐點名稱的文字 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(decimal.Parse(p.Price)).ToString() }) //加入餐點價格 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = p.Quantity }) //加入餐點數量 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = p.Remarks }) //加入備註 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(totalSingleMoney).ToString() }) //加入此餐點的總價 ) ); GetAllChosenDataGroups.Add(new GetChosenDataGroups() { ProductName = p.Dish_Name, Amount = decimal.Parse(p.Price), Number = int.Parse(p.Quantity), Mark = p.Remarks, TotalItemMoney = totalSingleMoney }); } } ChosencardData.GetAllChosenDatas = GetAllChosenDataGroups; var GetChosencardData = new CardDataModel <GetChosenData>() //務必按照此格式新增需要傳出去的資料 { Type = "GetChosenFoodFromMenuData", //於EchoBot判斷用 Value = ChosencardData //要傳出去的資料和資料結構 }; //顯示於TaskModule下方的文字資訊 var timeAndTotalMoney = new string[] { "DueTime", cardData.DueTime, "", "總金額:", decimal.Round(totalMoney).ToString() }; //將其他資訊加入至卡片內 card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddColumnsWithStrings(timeAndTotalMoney) //將文字資訊變為欄位並且加入至一列中 ) .AddElement(new AdaptiveTextBlock() //加入訂購者名稱至卡片 { Text = dataFactory.TurnContext.Activity.From.Name, Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }) .AddActionsSet( NewActionsSet() .AddActionToSet( new AdaptiveSubmitAction().SetOpenTaskModule("View", JsonConvert.SerializeObject(GetChosencardData)) //勿必要將傳出去的資料進行Serialize ) ); //回傳卡片 return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card, Name = "SingleOrderResult" }); }
public async Task <Attachment> CreateMenu(AdaptiveCardDataFactory dataFactory) { var storeData = dataFactory.GetCardData <StoreOrderDuetime>(); var cardData = new CardDataModel <StoreOrderDuetime>() //務必按照此格式新增需要傳出去的資料 { Type = "FetchSelectedFoods", //於EchoBot判斷用 Value = storeData //要傳出去的資料和資料結構 }; var itemsName = new string[] { "菜名", "價錢", "數量", "備註" }; var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() { Text = storeData.OrderID, Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddElement(new AdaptiveTextBlock() { Text = storeData.StoreName, Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }) .AddRow(new AdaptiveColumnSet() .AddColumnsWithStrings(itemsName) ); var foods = await new WebCrawler().GetOrderInfo2(storeData.Url); for (int i = 0; i < foods.Count; i++) { card .AddRow(new AdaptiveColumnSet() { Separator = true } .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextBlock() { Text = foods[i].Dish_Name })) .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(foods[i].Price).ToString() })) .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveNumberInput() { Min = 0, Value = 0, Id = $"{foods[i].Dish_Name}&&{foods[i].Price}" })) //Input相關的一定要給ID,且每個ID必須不一樣,否則傳回TaskModuleSubmit的時候會抓不到 .AddCol(new AdaptiveColumn() .AddElement(new AdaptiveTextInput() { Placeholder = "備註", Id = $"{foods[i].Dish_Name}&&mark" })) ); } card.AddElement(new AdaptiveTextBlock() { Text = $"Due Time: {storeData.DueTime}", Size = AdaptiveTextSize.Medium, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Left }) .AddActionsSet( NewActionsSet() .AddActionToSet( new AdaptiveSubmitAction().SetOpenTaskModule("Order", JsonConvert.SerializeObject(cardData)) //勿必要將傳出去的資料進行Serialize ) ); return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
private AdaptiveColumnSet StoreItems(string Storename, Guid MenuId) { var ModifyData = new CardDataModel <ModifyData>() { Type = "CustomizedModification", Value = new ModifyData() { MenuId = MenuId.ToString() } }; var DeleteMenuDate = new Data() { msteams = new Msteams() { type = "invoke", value = new MsteamsValue() { MenuId = MenuId, Option = "DeleteMenu" } } }; var cardData = new CardDataModel <string>() { Type = "CreateMenuDetail", Value = MenuId.ToString() }; var MainColumnSet = new AdaptiveColumnSet(); var Column1 = new AdaptiveColumn(); MainColumnSet.Columns.Add(Column1); var StoreName = new AdaptiveTextBlock() { Text = Storename, Height = AdaptiveHeight.Stretch, Weight = AdaptiveTextWeight.Bolder }; Column1.Items.Add(StoreName); var Column2 = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto }; MainColumnSet.Columns.Add(Column2); var ChildColumnSet = new AdaptiveColumnSet(); Column2.Items.Add(ChildColumnSet); var CreateColumn = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto }; ChildColumnSet.Columns.Add(CreateColumn); var CreateActionSet = new AdaptiveActionSet(); CreateActionSet.Actions.Add(new AdaptiveSubmitAction() { Title = "Create", Data = new AdaptiveCardTaskFetchValue <string>() { Data = JsonConvert.SerializeObject(cardData) } }); CreateColumn.Items.Add(CreateActionSet); var EditColumn = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto }; ChildColumnSet.Columns.Add(EditColumn); var EditActionSet = new AdaptiveActionSet(); EditActionSet.Actions.Add(new AdaptiveSubmitAction().SetOpenTaskModule("Edit", JsonConvert.SerializeObject(ModifyData))); EditColumn.Items.Add(EditActionSet); var DeleteColumn = new AdaptiveColumn() { Width = AdaptiveColumnWidth.Auto }; ChildColumnSet.Columns.Add(DeleteColumn); var DeleteActionSet = new AdaptiveActionSet(); DeleteActionSet.Actions.Add(new AdaptiveSubmitAction() { Title = "Delete", Data = DeleteMenuDate }); DeleteColumn.Items.Add(DeleteActionSet); return(MainColumnSet); }