public JsonResult Order(string name, string phone, string address, string memberID, decimal totalPrice) { if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(phone) || string.IsNullOrWhiteSpace(address)) { return(Json("填空區不可有空白")); } else { if (Regex.Match(name, @"[\u3000-\u9FA5\x20]{2,4}").Success) { if (Regex.Match(phone, @"(\(?\d{3,4}\)?)?[\s-]?\d{7,8}[\s-]?\d{0,4}").Success) { ShoppingCartRepository shoppingCartRepository = new ShoppingCartRepository(); OrdersRepository ordersRepository = new OrdersRepository(); EmployeesRepository employeesRepository = new EmployeesRepository(); ProductFormatRepository productFormatRepository = new ProductFormatRepository(); OrderDetailsRepository orderDetailsRepository = new OrderDetailsRepository(); ProductRepository productRepository = new ProductRepository(); var employees = employeesRepository.GetAll(); var randomNumber = new Random().Next(0, employees.Count()); Orders orders = new Orders() { EmployeeID = employees.ElementAt(randomNumber).EmployeeID, MemberID = memberID, ShipName = name, ShipAddress = address, ShipPhone = phone, OrderDate = DateTime.Now, Status = "未送貨", TotalPrice = totalPrice }; ordersRepository.Create(orders); Procedure.Procedure procedure = new Procedure.Procedure(); var orderTempID = procedure.FindOrderID(memberID); var shoppingCart = shoppingCartRepository.FindByMemberID(memberID); Stack <OrderDetails> orderData = new Stack <OrderDetails>(); orderData.Clear(); foreach (var item in shoppingCart) { if (productFormatRepository.FindById(item.ProductFormatID).StockQuantity - item.Quantity >= 0) { OrderDetails orderDetails = new OrderDetails() { OrderID = orderTempID.OrderID, ProductFormatID = item.ProductFormatID, Quantity = item.Quantity, UnitPrice = productRepository.FindById(item.ProductID).UnitPrice }; orderData.Push(orderDetails); } else { var productFormatTemp = productFormatRepository.FindById(item.ProductFormatID); var productTemp = productRepository.FindById(productFormatTemp.ProductID); return(Json("產品:" + productTemp.ProductName + Environment.NewLine + "顏色:" + productFormatTemp.Color + Environment.NewLine + "尺寸:" + productFormatTemp.Size + Environment.NewLine + "剩餘數量:" + productFormatTemp.StockQuantity + Environment.NewLine + "請重新下訂!")); } } foreach (var orderItem in orderData) { orderDetailsRepository.Create(orderItem); } shoppingCartRepository.DeleteByMemberId(memberID); return(Json("下訂成功")); } else { return(Json("電話格式有誤")); } } else { return(Json("姓名不符合格式")); } } }