public IHttpActionResult Post([FromBody] OrderPostModel order)
        {
            if (!ModelState.IsValid)
            {
                return(this.Conflict());
            }

            string userId = this.User.Identity.GetUserId();

            User user = this.userRepository.GetById(userId);

            PizzaItem newPizzaItem = new PizzaItem(Guid.NewGuid(), order.Pizza.Name, order.Pizza.TotalCost, order.Pizza.ImageUrl);

            foreach (var ingred in order.Pizza.Ingredients)
            {
                newPizzaItem.Ingredients.Add(this.ingredientRepository.GetList(ing => ing.Name == ingred.Name).FirstOrDefault());
            }

            Order orderEntity = new Order(
                Guid.NewGuid(),
                order.Pizza.TotalCost,
                EntityBuilder.ToEntity(order.Contact));

            orderEntity.User   = user;
            orderEntity.Pizzas = new List <PizzaItem>()
            {
                newPizzaItem
            };

            this.orderRepository.Add(orderEntity);
            this.orderRepository.SaveChanges();

            return(this.Ok());
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var controller = new OrdersController();

            var order = new OrderPostModel()
            {
                Date     = DateTime.UtcNow,
                Products = new List <ProductPostModel>()
                {
                    new ProductPostModel()
                    {
                        Name  = "Brik",
                        Price = 40000
                    },
                    new ProductPostModel()
                    {
                        Name  = "Wood",
                        Price = 40000
                    }
                },
                User = new UserPostModel()
                {
                    FirstName   = "John",
                    LastName    = "cddd",
                    PhoneNumber = "+380912573499"
                }
            };

            var a = controller.Create(order);
        }
Esempio n. 3
0
        public OrderViewModel Create(OrderPostModel model)
        {
            var order        = _mapper.Map <OrderModel>(model);
            var createdOrder = _ordersService.Create(order);

            return(_mapper.Map <OrderViewModel>(createdOrder));
        }
Esempio n. 4
0
        public JsonResult SubmitLimitOrder(OrderPostModel model, string payPwd)
        {
            model.CurrentUser = CurrentUser;
            var result = OrderApplication.GetLimitOrder(model);

            result.PlatformType = PlatformType; //订单来源
                                                //delete-pengjiangxiong
                                                //if (LimitOrderHelper.IsRedisCache())
                                                //{
                                                //    string id = "";
                                                //    SubmitOrderResult r = LimitOrderHelper.SubmitOrder(result, out id, payPwd);
                                                //    if (r == SubmitOrderResult.SoldOut)
                                                //        throw new HimallException("已售空");
                                                //    else if (r == SubmitOrderResult.NoSkuId)
                                                //        throw new InvalidPropertyException("创建订单的时候,SKU为空,或者数量为0");
                                                //    else if (r == SubmitOrderResult.NoData)
                                                //        throw new InvalidPropertyException("参数错误");
                                                //    else if (r == SubmitOrderResult.NoLimit)
                                                //        throw new InvalidPropertyException("没有限时购活动");
                                                //    else if (r == SubmitOrderResult.ErrorPassword)
                                                //        throw new InvalidPropertyException("支付密码错误");
                                                //    else if (string.IsNullOrEmpty(id))
                                                //        throw new InvalidPropertyException("参数错误");
                                                //    else
                                                //    {
                                                //        return SuccessResult<dynamic>(data: id);
                                                //    }
                                                //}
                                                //else
                                                //{
            var ret = OrderApplication.OrderSubmit(result, payPwd);

            return(Json <dynamic>(ret.Success, data: new { orderIds = ret.OrderIds, realTotalIsZero = ret.OrderTotal == 0 }));
            //}
        }
Esempio n. 5
0
        public JsonResult SubmitOrder(OrderPostModel model, string payPwd)
        {
            model.CurrentUser            = base.CurrentUser;
            model.DistributionUserLinkId = base.GetDistributionUserLinkId();
            model.PlatformType           = base.PlatformType.GetHashCode();
            OrderReturnModel model2 = OrderApplication.SubmitOrder(model, payPwd);

            base.ClearDistributionUserLinkId();
            OrderApplication.AddVshopBuyNumber(model2.OrderIds);
            base.Session.Remove("OrderTag");
            return(base.Json(new { success = model2.Success, orderIds = model2.OrderIds, realTotalIsZero = model2.OrderTotal == 0M }));
        }
Esempio n. 6
0
        public JsonResult SubmitOrder(OrderPostModel model, string payPwd)
        {
            model.CurrentUser       = CurrentUser;
            model.PlatformType      = PlatformType.GetHashCode();
            model.IsShopbranchOrder = true;
            var result = OrderApplication.SubmitOrder(model, payPwd);

            OrderApplication.AddVshopBuyNumber(result.OrderIds);
            #region 处理虚拟订单项
            OrderApplication.AddVshopBuyNumber(result.OrderIds);
            if (model.ProductType == 1 && model.VirtualProductItems != null && model.VirtualProductItems.Count() > 0)
            {
                var orderId = result.OrderIds.FirstOrDefault();
                if (orderId > 0)
                {
                    var orderItemInfo = OrderApplication.GetOrderItemsByOrderId(orderId).FirstOrDefault();
                    if (orderItemInfo != null)
                    {
                        var list = model.VirtualProductItems.ToList().Where(a => !string.IsNullOrWhiteSpace(a.Content)).ToList();//过滤空项
                        list.ForEach(a =>
                        {
                            a.OrderId     = orderId;
                            a.OrderItemId = orderItemInfo.Id;
                            if (a.VirtualProductItemType == (sbyte)ProductInfo.VirtualProductItemType.Picture)
                            {
                                a.Content = MoveImages(a.Content, CurrentUser.Id);
                            }
                        });
                        if (list.Count > 0)
                        {
                            OrderApplication.AddVirtualOrderItemInfo(list);
                        }
                    }
                }
            }
            #endregion
            HttpContext.Session.Remove("OrderTag");
            return(Json <dynamic>(result.Success, data: new { orderIds = result.OrderIds, realTotalIsZero = result.OrderTotal == 0 }));
        }
Esempio n. 7
0
        public JsonResult SubmitLimitOrder(OrderPostModel model, string payPwd)
        {
            model.CurrentUser  = base.CurrentUser;
            model.PlatformType = 1;
            OrderCreateModel limitOrder = OrderApplication.GetLimitOrder(model);

            if (LimitOrderHelper.IsRedisCache())
            {
                string id = "";
                switch (LimitOrderHelper.SubmitOrder(limitOrder, out id, payPwd))
                {
                case SubmitOrderResult.SoldOut:
                    throw new HimallException("已售空");

                case SubmitOrderResult.NoSkuId:
                    throw new InvalidPropertyException("创建预约单的时候,SKU为空,或者数量为0");

                case SubmitOrderResult.NoData:
                    throw new InvalidPropertyException("参数错误");

                case SubmitOrderResult.NoLimit:
                    throw new InvalidPropertyException("没有限时购活动");

                case SubmitOrderResult.ErrorPassword:
                    throw new InvalidPropertyException("支付密码错误");
                }
                if (string.IsNullOrEmpty(id))
                {
                    throw new InvalidPropertyException("参数错误");
                }
                OrderApplication.UpdateDistributionUserLink(base.GetDistributionUserLinkId().ToArray(), base.UserId);
                return(base.Json(new { success = true, Id = id }));
            }
            OrderReturnModel model3 = OrderApplication.OrderSubmit(limitOrder, payPwd);

            return(base.Json(new { success = model3.Success, orderIds = model3.OrderIds, realTotalIsZero = model3.OrderTotal == 0M }));
        }
Esempio n. 8
0
        public object PostSubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    throw new MallApiException("预存款支付密码错误");
                }
            }

            string cartItemIds = value.cartItemIds;
            long recieveAddressId = value.recieveAddressId;
            string couponIds = value.couponIds;
            int integral = value.integral;

            bool isCashOnDelivery = value.isCashOnDelivery;
            int invoiceType = value.invoiceType;
            string invoiceTitle = value.invoiceTitle;
            string invoiceContext = value.invoiceContext;


            IEnumerable<long> orderIds;

           
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject<OrderShop[]>(value.jsonOrderShops);

            OrderPostModel model = new OrderPostModel();
            model.CurrentUser = CurrentUser;
            model.PlatformType = PlatformType.Android.GetHashCode();
            model.IsShopbranchOrder = true;
            model.RecieveAddressId = recieveAddressId;
            model.Integral = integral;
            model.Capital = value.CapitalAmount;
            model.IsCashOnDelivery = isCashOnDelivery;
            //model.InvoiceType = invoiceType;
            //model.InvoiceContext = invoiceContext;
            //model.InvoiceTitle = invoiceTitle;
            //model.InvoiceCode = value.invoiceCode;
            model.OrderShops = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.CartItemIds = cartItemIds;
            model.IsShopbranchOrder = true;
            if (model.OrderShops == null || model.OrderShops.Count() < 1)
            {
                throw new MallApiException("订单信息错误");
            }
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Where(d => !string.IsNullOrWhiteSpace(d)).Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                List<OrderSku> skus = new List<OrderSku>();
                foreach (var _item in cartItems)
                {
                    OrderSku _tmp = new OrderSku();
                    _tmp.SkuId = _item.SkuId;
                    _tmp.Count = _item.Quantity;
                    skus.Add(_tmp);
                }

                model.CouponIds = couponIds;
                model.OrderShops[0].OrderSkus = skus.ToArray();
                var result = OrderApplication.SubmitOrder(model, value.PayPwd);
                orderIds = result.OrderIds;
                decimal orderTotals = result.OrderTotal;
                var _result = new { success = true, OrderIds = orderIds, RealTotalIsZero = orderTotals == 0 };
                return _result;
            }
            catch (MallException he)
            {
                return ErrorResult(he.Message);
            }
            catch (Exception ex)
            {
                return ErrorResult("提交订单异常");
            }
        }