Exemple #1
0
        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));
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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服务器时出错!");
            }
        }
Exemple #4
0
        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 }));
        }
Exemple #5
0
        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);
        }