public IActionResult AddOrder(OrderItem[] orderItems) { string userId = User.Claims.SingleOrDefault(c => c.Type == "UserID").Value; AddOrderResult result = _marketUoW.UseOrderRepository().AddOrder(orderItems, userId).Result; return(Ok(result)); }
/// <summary> /// Using Transaction Scope with Exception Example /// </summary> private void Transactions3() { var dc = new NorthwindDataContext(); var custId = "ALFKI"; //Retrieve Customer var customer = dc.Customers.SingleOrDefault(c => c.CustomerID == custId); if (customer == null) { string.Format("Customer: [{0}] does NOT exist!").DisplayResults(); return; } AddOrderResult newOrderResult = null; //Open transaction Scope using (var transScope = new System.Transactions.TransactionScope()) { try { //Create Customer Order var result = dc.AddOrder(custId, 4, DateTime.Today, DateTime.Today.AddDays(7), null, 1, 20.5m, "Costa Concordia", customer.Address, customer.City, customer.Region, customer.PostalCode, customer.Country).ToList(); newOrderResult = result[0]; //Create Details dc.AddOrderDetail(newOrderResult.OrderID, 7, 25, 10, 0); dc.AddOrderDetail(newOrderResult.OrderID, 99, 10, 15, 0); dc.AddOrderDetail(newOrderResult.OrderID, 12, 20, 25, 0); //Commit Transaction transScope.Complete(); } catch (Exception ex) { "Exception".DisplayHeader(); ex.Message.DisplayResults(); } } //Show Customer Orders Display.ShowCustomerOrders(dc, custId); //Show Order Details Display.ShowOrderDetails(dc, newOrderResult.OrderID); }
/// <summary> /// 订单提交页——确认提交订单 /// </summary> private async void UCOrderSubmitOrderSubmitConfirmCommandExecute() { GridCurrentUserControlIsVisible(); try { AddOrderResult addOrderResult = await HTTPHelper.SubmitOrder(MarkingInfo, GetCoordinates()); if (addOrderResult.Result == "OK") { OrderSubmitResult = "您的订单提交成功,订单号为:" + addOrderResult.OrderID; UserControlSwitchFunc(UserControlSwitchEnum.UCOrderSubmitOrderResult); } if (addOrderResult.Result == "NA") { if (addOrderResult.OrderID == "0000") { MessageBox.Show("未登录!"); } if (addOrderResult.OrderID == "1111") { MessageBox.Show("wcf服务报错!"); } if (addOrderResult.OrderID == "error") { MessageBox.Show("下单异常!"); } } } catch (Exception) { MessageBox.Show("访问HTTP服务器时出错!"); } }
public ActionResult Send(EnterShippingDetailsViewModel viewModel, Cart cart) { if (!ModelState.IsValid || viewModel.DeliverType == DeliverType.NULL || viewModel.PaymentType == PaymentType.NULL) { if (viewModel.DeliverType == DeliverType.NULL) { ModelState.AddModelError("DeliverType", "Выберите способ доставки"); } if (viewModel.PaymentType == PaymentType.NULL) { ModelState.AddModelError("PaymentType", "Выберите способ оплаты"); } return(View("EnterShippingDetails", new EnterShippingDetailsViewModel() { Contact = ContactViewModel.From(CurrentUser().Contact), Cart = cart, User = CurrentUser(), DeliverPrices = daoTemplate.FindAll <DeliverPrices>()[0], DeliverType = viewModel.DeliverType, Comment = viewModel.Comment })); } OrderShippingInfo info = OrderShippingInfo.From(viewModel); AddOrderResult result = orderService.AddOrder(cart, CurrentUser(), info); var message = MailService.RenderViewToString("~/Views/MailTemplates/NewOrder.aspx", result.Order, this.ControllerContext); BillViewModel model = new BillViewModel() { Price = result.Order.SummWithDiscount, Address = result.Order.ShippingDetails.AddressBill(), Uid = result.Order.Uid, UserName = result.Order.ShippingDetails.FullName }; var attachment = ""; if (result.Order.PaymentType == PaymentType.Bank) { attachment = MailService.RenderViewToString("~/Views/Order/Bill.aspx", model, this.ControllerContext); } MailService.Send("Новый заказ - Elfam.ru", message, result.Order.User.Email, attachment, null); message = MailService.RenderViewToString("~/Views/MailTemplates/NewOrderAdmin.aspx", result.Order, this.ControllerContext); // MailService.Send("Новый заказ № " + result.Order.Uid, message, "*****@*****.**"); mailService.SendCcAdmins("Новый заказ № " + result.Order.Uid, message, "*****@*****.**"); cart.Items.Clear(); return(RedirectToAction("DetailsUser", "Order", new { id = result.Order.Uid })); }
public async Task <AddOrderResult> AddOrder(OrderItem[] orderItems, string userId) { AddOrderResult result = new AddOrderResult(); AppUser user = _userManager.Users.SingleOrDefault(u => u.Id == userId); Customer customer = _context.Customers.SingleOrDefault(c => c.Id == user.Customer_Id); if (user.Customer_Id != null && orderItems.Length > 0) { Order order = new Order() { Customer_Id = user.Customer_Id.Value, Order_Date = DateTime.Now.Date, Status = "Новый" }; await _context.Orders.AddAsync(order); await _context.SaveChangesAsync(); order = _context.Orders.Last(); int orderId = order.Id; foreach (var orderItem in orderItems) { orderItem.Order_Id = orderId; orderItem.Item = null; var discount = customer.Discount; var price = orderItem.Item_Price; orderItem.Item_Price = price - (orderItem.Item_Price * discount) / 100; } await _context.OrderItems.AddRangeAsync(orderItems); int SaveChangesResult = await _context.SaveChangesAsync(); if (SaveChangesResult > 0) { result.Success = true; } } return(result); }