/// <summary> /// レシピが選択された /// </summary> private void RecipiListSelected(object sender, EventArgs e) { productionRecipe.RecipeName = recipeSelectWindow.Combobox_Recipe.SelectedItem.ToString(); // 選択されたレシピ名を取得 DBSelect dbSelect = new DBSelect(); List <string[]> recipeData = dbSelect.SelectData("MaterialRecipes", null, new string[] { "RecipeId", "MaterialId", "RequiredBuildingTypeId", "UnitProductionTime", "UnitProductionPieces" }, "Name = @NAME", new List <string[]>() { new string[] { "@NAME", productionRecipe.RecipeName } }, null); string[] recipe = recipeData[0]; // レシピデータを取り出す // 取り出したデータを格納 productionRecipe.RecipeId = recipe[0]; // レシピID productionRecipe.ProductionMaterial.MaterialId = recipe[1]; // 生産物ID productionRecipe.BuildingToUse.TypeId = recipe[2]; // 要求建物タイプID productionRecipe.UnitProductionTime = int.Parse(recipe[3]); // 単位生産時間 productionRecipe.UnitProductionPieces = int.Parse(recipe[4]); // 単位生産数 // 生産品名を取得 List <string[]> materialName = dbSelect.SelectData("Materials", null, new string[] { "Name", "IsOre" }, "MaterialId = @MATERIALID", new List <string[]>() { new string[] { "@MATERIALID", productionRecipe.ProductionMaterial.MaterialId } }, null); productionRecipe.ProductionMaterial.Name = materialName[0][0]; productionRecipe.IsOre = int.Parse(materialName[0][1]); // 鉱石だったら純度ラジオを表示する recipeSelectWindow.ChangeVisibiilityRadios(productionRecipe.IsOre); // 要求素材を取得 productionRecipe.RequiredMaterials.Clear(); List <string[]> requiredMaterials = dbSelect.SelectData("RequiredMaterials RM", "LEFT JOIN Materials M ON RM.RequiredMaterialId = M.MaterialId", new string[] { "RequiredMaterialId", "Name", "NumberOfRequiredMaterial" }, "RecipeId = @RECIPEID", new List <string[]>() { new string[] { "@RECIPEID", productionRecipe.RecipeId } }, null); foreach (string[] required in requiredMaterials) { RequiredMaterial requiredMaterial = new RequiredMaterial(); requiredMaterial.MaterialId = required[0]; requiredMaterial.Name = required[1]; requiredMaterial.NumberOfRequired = int.Parse(required[2]); productionRecipe.RequiredMaterials.Add(requiredMaterial); } recipeSelectWindow.BorderAttentionOnRecipeSelect(false); // 要求素材を表示させる RequiedMaterialsChange(); // 施設リストを取得して入れる SetBuildingListToCombox(productionRecipe.BuildingToUse.TypeId); }
public IActionResult SetFoodRecipe(RequiredMaterialVm Rl) { var raw = _context.FoodItems.AsNoTracking().ToList(); ViewBag.RawItem = new SelectList(raw, "FoodItemId", "FoodName"); foreach (var item in Rl.MaterialVms) { RequiredMaterial a = new RequiredMaterial(); a.RequiredMaterialId = Rl.RequiredMaterialId; a.FoodItemId = Rl.FoodItemId; a.IngredientId = item.IngredientId; a.QuantityInGram = item.QuantityInGram; _context.RequiredMaterial.Add(a); _context.SaveChanges(); } ViewBag.Success = "You have succesfully added food recipe."; ModelState.Clear(); return(View()); }
public async Task <IActionResult> Order() { var Discount = HttpContext.Session.GetString("Discount"); var CustomerDetails = new Customers(); var user = await userManager.GetUserAsync(User); var user1 = await userManager.FindByEmailAsync(User.Identity.Name); if (await userManager.IsInRoleAsync(user, "Customer") == true) { CustomerDetails = _context.Customers. Where(s => s.MobileNumber == user.PhoneNumber) .FirstOrDefault(); } var ReservedTable = HttpContext.Session.Get <TableResevationCart>("Table"); if (ReservedTable != null) { CustomerOrderedTable abc = new CustomerOrderedTable() { CustomerOrderedTableId = 0, CustomersId = CustomerDetails.CustomersId }; abc.BookTimeFrom = ReservedTable.BookTimeFrom; abc.BookTimeTo = ReservedTable.BookTimeTo; abc.Date = ReservedTable.Date; abc.TableId = ReservedTable.TableId; await _context.CustomerOrderedTable.AddAsync(abc); await _context.SaveChangesAsync(); var update = _context.Table.Where(a => a.TableId == ReservedTable.TableId).FirstOrDefault(); update.BookedStatus = true; _context.Table.Update(update); await _context.SaveChangesAsync(); var orderlist = HttpContext.Session.Get <List <FoodCart> >("FoodS"); if (orderlist != null) { foreach (var item in orderlist) { CustomerOrderDetails ab = new CustomerOrderDetails() { CustomerOrderDetailsId = 0, FoodItemId = item.FoodItemId, Quantity = item.Quantity, PaymentStatus = false, CustomerOrderedTableId = abc.CustomerOrderedTableId, }; if (Discount != null) { ab.OfferId = Convert.ToInt32(Discount); } await _context.CustomerOrderDetails.AddAsync(ab); await _context.SaveChangesAsync(); } } } else { CustomerOrderedTable tabless = new CustomerOrderedTable() { CustomerOrderedTableId = 0, CustomersId = CustomerDetails.CustomersId, TableId = 1, Date = DateTime.Now }; await _context.CustomerOrderedTable.AddAsync(tabless); await _context.SaveChangesAsync(); var orderlist = HttpContext.Session.Get <List <FoodCart> >("FoodS"); if (orderlist != null) { foreach (var item in orderlist) { CustomerOrderDetails ab = new CustomerOrderDetails() { CustomerOrderDetailsId = 0, FoodItemId = item.FoodItemId, Quantity = item.Quantity, PaymentStatus = false, CustomerOrderedTableId = tabless.CustomerOrderedTableId }; if (Discount != null) { ab.OfferId = Convert.ToInt32(Discount); } await _context.CustomerOrderDetails.AddAsync(ab); await _context.SaveChangesAsync(); } } } var FoodItemList = HttpContext.Session.Get <List <FoodCart> >("FoodS"); foreach (var item in FoodItemList) { var IngredientList = await _context.RequiredMaterial .AsNoTracking().Where(a => a.FoodItemId == item.FoodItemId).ToListAsync(); for (int i = 0; i < IngredientList.Count(); i++) { var Requiered = await _context.RequiredMaterial.AsNoTracking() .Where(a => a.RequiredMaterialId == IngredientList[i].RequiredMaterialId) .FirstOrDefaultAsync(); var NeedToUpdateMaterials = await _context.StockDetails. AsNoTracking().Where(a => a.IngredientId == IngredientList[i].IngredientId) .LastOrDefaultAsync(); for (int j = 0; j < item.Quantity; j++) { var quaantity = NeedToUpdateMaterials.AvailableStock - Requiered.QuantityInGram; NeedToUpdateMaterials.AvailableStock = quaantity; _context.StockDetails.Update(NeedToUpdateMaterials); await _context.SaveChangesAsync(); _context.Entry <StockDetails>(NeedToUpdateMaterials).State = EntityState.Detached; } NeedToUpdateMaterials = new StockDetails(); Requiered = new RequiredMaterial(); } IngredientList = new List <RequiredMaterial>(); } HttpContext.Session.Remove("FoodS"); HttpContext.Session.Remove("Table"); HttpContext.Session.Remove("Discount"); return(RedirectToAction("Index", "Home")); }