public EGRepository(TeamsBuyContext context) { if (context == null) { throw new ArgumentException(); } _context = context; }
}//middleware public void Create(string memberId, string url) { var con = new TeamsBuyContext(); var pay = new Payment { MemberId = memberId, Url = url }; con.Payment.Add(pay); con.SaveChanges(); }
public async Task <TaskModuleResponse> GetModifyModuleData(ITurnContext <IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken) { var TaskInfo = new TaskModuleTaskInfo(); TeamsBuyContext context = new TeamsBuyContext(); var asJobject = JObject.FromObject(taskModuleRequest.Data); var Value = asJobject.ToObject <CardTaskFetchValue <string> >()?.Data; var MenuOrderData = new MenuDetailService(context).GetMenuOrder(Value).ToList(); var MenuOrderStore = new MenuService(context).GetMenuOrder(Value).Store; TaskInfo.Card = new CreateCardService().GetCustomizedModification(MenuOrderStore, MenuOrderData, Value); SetTaskInfo(TaskInfo, TaskModuleUIConstants.UpdateMenu); return(await Task.FromResult(TaskInfo.ToTaskModuleResponse())); }
public CustomMenuService(TeamsBuyContext context, IConfiguration config) { _context = context; if (string.IsNullOrEmpty(connString)) { connString = config.GetConnectionString("TeamsBuyContext"); } if (conn == null) { conn = new SqlConnection(connString); } }
public async Task <TaskModuleResponse> FinishSelectDishesSubmit(ITurnContext <IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken) { TeamsBuyContext context = new TeamsBuyContext(); var TaskInfo = new TaskModuleTaskInfo(); JObject Data = JObject.Parse(JsonConvert.SerializeObject(taskModuleRequest.Data)); var StoreAndGuidAndDueTime = Data.Property("data").Value.ToString(); new OrganizeStructureService().RemoveNeedlessStructure(Data); string SelectJson = ProcessAllSelect(Data); JObject o = new JObject(); o["SelectMenu"] = JArray.Parse(SelectJson); bool DecideQuanRem = true; bool Number = true; var AllSelectDatas = JsonConvert.DeserializeObject <SelectMenuDatagroup>(o.ToString()); foreach (var item in AllSelectDatas.SelectMenu) { if (item.Quantity == "0" && item.Remarks != "") { DecideQuanRem = false; } if (Math.Sign(decimal.Parse(item.Quantity)) < 0 || (decimal.Parse(item.Quantity) - Math.Floor(decimal.Parse(item.Quantity))) != 0) { Number = false; } } if (DecideQuanRem == true && Number == true) { //取完整資料 var OAllOrderDatasStr = ProcessUnifyData(o); var SelectObject = JsonConvert.DeserializeObject <SelectAllDataGroup>(OAllOrderDatasStr); SelectObject.UserID = turnContext.Activity.From.Id; var ExistGuid = Guid.Parse("cf1ed7b9-ae4a-4832-a9f4-fdee6e492085"); new OrderDetailService(context).CreateOrderDetail(SelectObject, SelectObject.SelectAllOrders, ExistGuid); TaskInfo.Card = new CreateCardService().GetResultClickfood(new OrganizeStructureService().GetOrderID(StoreAndGuidAndDueTime), new OrganizeStructureService().GetStoreName(StoreAndGuidAndDueTime), o.ToString(), new OrganizeStructureService().GetDueTime(StoreAndGuidAndDueTime), turnContext.Activity.From.Name); SetTaskInfo(TaskInfo, TaskModuleUIConstants.AdaptiveCard); await turnContext.SendActivityAsync(MessageFactory.Attachment(new CreateCardService().GetResultClickfood(new OrganizeStructureService().GetOrderID(StoreAndGuidAndDueTime), new OrganizeStructureService().GetStoreName(StoreAndGuidAndDueTime), o.ToString(), "12:00", turnContext.Activity.From.Name))); } else { TaskInfo.Card = new CreateCardService().GetError(turnContext.Activity.From.Name); SetTaskInfo(TaskInfo, TaskModuleUIConstants.AdaptiveCard); await turnContext.SendActivityAsync(MessageFactory.Attachment(new CreateCardService().GetError(turnContext.Activity.From.Name))); } return(await Task.FromResult(TaskInfo.ToTaskModuleResponse())); }
public void ModifyMenuData(TaskModuleRequest taskModuleRequest, TaskModuleTaskInfo TaskInfo) { TeamsBuyContext context = new TeamsBuyContext(); var asJobject = JObject.FromObject(taskModuleRequest.Data); var Value = asJobject.ToObject <CardTaskFetchValue <string> >()?.Data; JObject Data = JObject.Parse(JsonConvert.SerializeObject(taskModuleRequest.Data)); new OrganizeStructureService().ModifyRemoveNeedlessStructure(Data); var inputlist = new List <string>(); foreach (var item in Data) { inputlist.Add(item.Value.ToString()); } inputlist.Remove(inputlist[0]); var StoreName = inputlist[0]; inputlist.Remove(inputlist[0]); var Modify = new ModifyGroup(); var w = new List <ModifyMultiple>(); for (int i = 0; 2 * i < inputlist.Count(); i++) { w.Add(new ModifyMultiple() { ProductName = inputlist[2 * i], Amount = inputlist[2 * i + 1], MenuId = Value }); } Modify.AllModifyMultiple = w; Modify.StoreName = StoreName; for (var i = 0; i < Modify.AllModifyMultiple.Count; i++) { if (Modify.AllModifyMultiple[i].ProductName == "" || Modify.AllModifyMultiple[i].Amount.ToString() == "") { Modify.AllModifyMultiple.Remove(Modify.AllModifyMultiple[i]); } } new MenuService(context).UpdateMenuOrderStoreName(Value, Modify.StoreName); new MenuDetailService(context).DeleteMenuDetail(Value); new MenuDetailService(context).CreateMenuDetail(Modify); TaskInfo.Card = new CreateCardService().GetResultCustomizedModification(Modify.StoreName, Modify.AllModifyMultiple); SetTaskInfo(TaskInfo, TaskModuleUIConstants.UpdateMenu); }
public Attachment GetResultCustomizedModification(AdaptiveCardDataFactory dataFactory) { TeamsBuyContext context = new TeamsBuyContext(); var MenuId = dataFactory.GetCardData <ModifyData>().MenuId; dataFactory.ModifyMenuData(MenuId); var menuDetails = new MenuDetailService(context).GetMenuOrder(MenuId).ToList(); var MenuOrderStore = new MenuService(context).GetMenuOrder(MenuId).Store; string[] ItemsName = new string[] { "Food Name", "Price" }; var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() { Text = MenuOrderStore }) .AddRow(new AdaptiveColumnSet(). AddColumnsWithStrings(ItemsName) ); for (var i = 0; i < menuDetails.Count; i++) { card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = menuDetails[i].ProductName }) //在欄位內加入餐點名稱的文字 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(menuDetails[i].Amount).ToString() }) //加入餐點價格 ) ); } return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }); }
public void ModifyMenuData(string MenuId) { TeamsBuyContext context = new TeamsBuyContext(); var jData = JObject.FromObject(Request.Data); RemoveProperty(jData); var inputlist = new List <string>(); foreach (var item in jData) { inputlist.Add(item.Value.ToString()); } var StoreName = inputlist[0]; inputlist.Remove(inputlist[0]); var Modify = new ModifyGroup(); var ModifyData = new List <ModifyMultiple>(); for (int i = 0; 2 * i < inputlist.Count(); i++) { ModifyData.Add(new ModifyMultiple() { ProductName = inputlist[2 * i], Amount = inputlist[2 * i + 1], MenuId = MenuId }); } Modify.AllModifyMultiple = ModifyData; Modify.StoreName = StoreName; for (var i = 0; i < Modify.AllModifyMultiple.Count; i++) { if (Modify.AllModifyMultiple[i].ProductName == "" || Modify.AllModifyMultiple[i].Amount.ToString() == "") { Modify.AllModifyMultiple.Remove(Modify.AllModifyMultiple[i]); } } new MenuService(context).UpdateMenuOrderStoreName(MenuId, Modify.StoreName); new MenuDetailService(context).DeleteMenuDetail(MenuId); new MenuDetailService(context).CreateMenuDetail(Modify); }
public void GetChosenFoodFromMenuCreateOrderDetail(AdaptiveCardDataFactory dataFactory, string UserId) { TeamsBuyContext context = new TeamsBuyContext(); var cardData = dataFactory.GetCardData <StoreOrderDuetime>(); var OrderData = dataFactory.GetOrderedFoods(); var SelectObject = new SelectAllDataGroup(); SelectObject.UserID = UserId; var ChosenFoodFromMenu = new List <SelectData>(); foreach (var p in OrderData) { if (p.Quantity != "0") { ChosenFoodFromMenu.Add(new SelectData() { Quantity = p.Quantity, Remarks = p.Remarks, Dish_Name = p.Dish_Name, Price = p.Price }); } } new OrderService(context).CreateOrder(cardData.OrderID, dataFactory.TurnContext.Activity.ChannelId, cardData.StoreName); new OrderDetailService(context).CreateOrderDetail(SelectObject, ChosenFoodFromMenu, Guid.Parse(cardData.OrderID)); }
//當在記憶體內新增這個類別的執行個體時,要先做這個程式(建構式) public OrderDetailService(TeamsBuyContext _context) { context = _context; }//middleware
public OrderService(TeamsBuyContext _context) { context = _context; }
public Attachment GetChosenFoodFromMenuModule(AdaptiveCardDataFactory dataFactory) { TeamsBuyContext context = new TeamsBuyContext(); var ChosencardData = dataFactory.GetCardData <GetChosenData>(); var itemsName = new string[] { "食物名稱", "價錢", "數量", "備註", "單品總金額" }; //顯示於TaskModule上方的欄位名稱 //var cardData = dataFactory.GetCardData<StoreOrderDuetime>(); //新增一基本卡片,並且附加此訂單的Guid、餐廳名稱、欄位名稱等文字訊息 var card = NewAdaptiveCard() .AddElement(new AdaptiveTextBlock() //加入訂單Guid { Text = ChosencardData.OrderID, Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }) .AddElement(new AdaptiveTextBlock() //加入餐廳名稱 { Text = ChosencardData.StoreName + "訂單", Size = AdaptiveTextSize.Small, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Right }); //.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 // .AddColumnsWithStrings(itemsName) //加入欄位名稱到一列 //); card .AddRow(new AdaptiveColumnSet() { Separator = true } .AddCol(new AdaptiveColumn() { Width = "40" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "食物名稱", Color = (AdaptiveTextColor)5 })) .AddCol(new AdaptiveColumn() { Width = "10" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "價錢", Color = (AdaptiveTextColor)5 })) .AddCol(new AdaptiveColumn() { Width = "10" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "數量", Color = (AdaptiveTextColor)5 })) .AddCol(new AdaptiveColumn() { Width = "20" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "備註", Color = (AdaptiveTextColor)5 })) .AddCol(new AdaptiveColumn() { Width = "20" } .AddElement(new AdaptiveTextBlock() { Size = (AdaptiveTextSize)2, Weight = (AdaptiveTextWeight)2, Text = "單品總金額", Color = (AdaptiveTextColor)5 })) ); //此訂單的總花費 decimal totalMoney = 0; //將SelectMenuDatagroup的資訊(菜色名稱、單價、數量、備註、總額),逐一附加到卡片內 foreach (var p in ChosencardData.GetAllChosenDatas) { //如果沒有這道菜點餐,那就不用計算、也不用顯示 if (p.Number.ToString() != "0") { //獲取此餐點的總價:數量x單價 var totalSingleMoney = GetTotalMoney(p.Number.ToString(), p.Amount.ToString()); //將此餐點的總額計入此訂單的總價 totalMoney += totalSingleMoney; //在卡片內加入一列,在一列中加入五個欄位並猜入不同資訊 card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddCol(new AdaptiveColumn() //加入一欄位到一列 { Width = "40" } .AddElement(new AdaptiveTextBlock() { Text = p.ProductName }) //在欄位內加入餐點名稱的文字 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 { Width = "10" } .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(p.Amount).ToString() }) //加入餐點價格 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 { Width = "10" } .AddElement(new AdaptiveTextBlock() { Text = p.Number.ToString() }) //加入餐點數量 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 { Width = "20" } .AddElement(new AdaptiveTextBlock() { Text = p.Mark }) //加入備註 ) .AddCol(new AdaptiveColumn() //加入一欄位到一列 { Width = "20" } .AddElement(new AdaptiveTextBlock() { Text = decimal.Round(p.TotalItemMoney).ToString() }) //加入此餐點的總價 ) ); } } //顯示於TaskModule下方的文字資訊 var timeAndTotalMoney = new string[] { "DueTime", ChosencardData.DueTime, "", "總金額:", decimal.Round(totalMoney).ToString() }; //將其他資訊加入至卡片內 card.AddRow(new AdaptiveColumnSet() //加入一列到卡片裡 .AddColumnsWithStrings(timeAndTotalMoney) //將文字資訊變為欄位並且加入至一列中 ) .AddElement(new AdaptiveTextBlock() //加入訂購者名稱至卡片 { Text = ChosencardData.UserName, Size = AdaptiveTextSize.Large, Weight = AdaptiveTextWeight.Bolder, HorizontalAlignment = AdaptiveHorizontalAlignment.Center }); //回傳卡片 return(new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card, Name = "SingleOrderResult" }); }
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 MenuService(TeamsBuyContext _context) { context = _context; }
public PayMentService(TeamsBuyContext _context) { context = _context; }//middleware