Exemple #1
0
        public ActionResult GetOrder(Guid Id, DateTime DateCreateStart, DateTime DateCreateEnd, string Status)
        {
            var checkCus = _customerService.GetCustomer(Id);

            if (checkCus == null)
            {
                return(NotFound("Not Found Customer"));
            }
            List <DateTimeVM> listDateTime = new List <DateTimeVM>();
            //get orders
            var result = _orderService.GetOrders(o => o.CustomerId == Id && o.DateCreate >= DateCreateStart.AddDays(-1) && o.DateCreate <= DateCreateEnd.AddDays(1) && !o.Status.ToLower().Equals("done") && !o.Status.ToLower().Equals("cancel"));

            foreach (Order item in result)
            {
                DateTimeVM date = new DateTimeVM();
                date.Date = item.DateCreate;
                OrderCM orderCM = item.Adapt <OrderCM>();
                bool    flag    = false;
                foreach (DateTimeVM dates in listDateTime)
                {
                    if (date.Date.ToString("dd/MM/yyyy").Equals(dates.Date.ToString("dd/MM/yyyy")))
                    {
                        flag = true;
                        dates.ListOrder.Add(orderCM);
                    }
                }
                if (!flag)
                {
                    date.ListOrder = new List <OrderCM>();
                    date.ListOrder.Add(orderCM);
                    listDateTime.Add(date);
                }
            }
            return(Ok(listDateTime));
        }
        public IHttpActionResult Create(OrderCM cm)
        {
            try
            {
                Order model = AutoMapper.Mapper.Map <OrderCM, Order>(cm);

                model.OrderDate = DateTime.Now.ToUniversalTime()
                                  .AddHours(ConstantDataManager.WorldTime.VIETNAM);
                model.Status = ConstantDataManager.OrderStatus.PENDING;
                model.UserId = CURRENT_USER_ID;

                _orderService.CreateOrder(model);
                _orderService.SaveOrderChanges();

                foreach (int couponItemId in cm.CouponItemIds)
                {
                    CouponItem coupon = _couponItemService.GetCouponItem(couponItemId);
                    coupon.OrderId = model.Id;
                    coupon.IsUsed  = true;
                    _couponItemService.UpdateCouponItem(coupon);
                    _couponItemService.SaveCouponItemChanges();
                }

                model = _orderService.GetOrder(o => o.Id == model.Id, o => o.CouponItems, o => o.OrderDetails);

                OrderVM result = AutoMapper.Mapper.Map <Order, OrderVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
Exemple #3
0
        public ActionResult CreateOrder([FromBody] OrderCM model)
        {
            var timeCreate = DateTime.Now;
            var checkSlot  = _slotService.GetSlots(s => s.TimeStart.Date == timeCreate.Date).Where(t1 => t1.TimeStart.TimeOfDay <= timeCreate.TimeOfDay).Where(t2 => t2.TimeEnd.TimeOfDay >= timeCreate.TimeOfDay).ToList();

            if (checkSlot.Any())
            {
                var checkCus = _customerService.GetCustomer(model.CustomerId.Value);
                if (checkCus == null)
                {
                    return(NotFound());
                }

                Order newOrder = model.Adapt <Order>();
                newOrder.IsDelete   = false;
                newOrder.SlotTakeId = checkSlot[0].Id;
                _orderService.CreateOrder(newOrder);
                _orderService.Save();

                foreach (var item in model.ListOrderServices)
                {
                    OrderService orderService = item.Adapt <OrderService>();
                    orderService.OrderId = newOrder.Id;
                    _orderServiceService.CreateOrderService(orderService);
                }
                _orderServiceService.Save();
                return(Ok(200));
            }
            else
            {
                return(BadRequest("Dont Have Any Slot"));
            }
        }
        public IHttpActionResult Create(OrderCM cm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                Order model = AutoMapper.Mapper.Map <OrderCM, Order>(cm);
                _orderService.CreateOrder(model);
                _orderService.SaveOrderChanges();

                OrderVM result = AutoMapper.Mapper.Map <Order, OrderVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
        public async Task <ActionResult> createOrder(OrderCM model)
        {
            double totalAmount = 0;

            foreach (var item in model.OrderDetailCMs)
            {
                if (item.Quantity <= 0 || item.Quantity > 5)
                {
                    return(BadRequest());
                }
                var product = _productService.GetProduct(item.ProductId);
                if (product == null)
                {
                    return(BadRequest());
                }
                totalAmount += product.CurrentPrice * item.Quantity;
            }
            var user = await _userManager.GetUserAsync(User);

            var order = model.Adapt <Order>();

            order.BuyerId       = user.Id;
            order.TotalAmount   = totalAmount;
            order.CurrentStatus = (int)OrderCurrentStatus.received;
            _orderService.CreateOrder(order);
            foreach (var item in model.OrderDetailCMs)
            {
                var orderDetail = item.Adapt <OrderDetail>();
                orderDetail.OrderId = order.Id;
                _detailService.CreateOrderDetail(orderDetail);
            }
            _orderService.SaveChanges();
            OrderStatus status = new OrderStatus();

            status.OrderId  = order.Id;
            status.StatusId = (int)OrderStatusId.start;
            _statusService.CreateOrderStatus(status);
            _statusService.SaveChanges();
            return(Ok());
        }