예제 #1
0
        public async Task <CreateOrUpdateResultInt> Create(Order order)
        {
            var rs = new CreateOrUpdateResultInt();



            try
            {
                await _orderRepository.InsertAsync(order);
            }
            catch (Exception ex)
            {
                rs.Result  = Result.SystemError;
                rs.Message = ex.ToString();
            }
            rs.Id = order.Id;
            return(rs);
        }
예제 #2
0
        public async Task <BaseResult> CreateOrUpdate(OrderModel model, int updateBy = 0, string updateByUserName = "")
        {
            var ward = _wardService.Get(model.WardId);

            model.Address = ward.Name + ward.District.Name + ward.District.City.Name;
            List <OrderItemModel> order_Items = null;

            if (model.ListOrderItem != null)
            {
                order_Items         = model.ListOrderItem;
                model.ListOrderItem = null;
            }
            var order = model.ToOrder();

            if (order.Id > 0)
            {
                if (order_Items != null)
                {
                    List <int> listInDTB         = _orderItemService.GetOrderItemByOrderId(model.Id).ToList();
                    List <int> orderItemUpdateID = new List <int> {
                    };
                    foreach (OrderItemModel orderItemModel2 in order_Items)
                    {
                        await _orderItemService.CreateOrUpdate(orderItemModel2);

                        orderItemUpdateID.Add(orderItemModel2.Id);
                    }

                    foreach (int a in listInDTB)
                    {
                        if (!orderItemUpdateID.Contains(a))
                        {
                            await _orderItemService.Delete(a);
                        }
                    }

                    order_Items = null;
                }
                //Cập nhật
                return(await Update(order));
            }
            else
            {
                order.CreatedTime = DateTime.Now;
                CreateOrUpdateResultInt rs = await Create(order);

                if (order_Items != null)

                {
                    foreach (OrderItemModel orderItemModel2 in order_Items)
                    {
                        orderItemModel2.OrderId = rs.Id;

                        await _orderItemService.CreateOrUpdate(orderItemModel2);
                    }
                }


                return(rs);
            }
        }