Example #1
0
        private async Task UpdateProduct(OrderPositionModel orderPosition)
        {
            Product product = await this.productRepository.Get(orderPosition.ProductId);

            product.Count -= orderPosition.Count;
            await this.productRepository.Update(product);
        }
Example #2
0
 public static void UpdateOrderPosition(this OrderPosition entity, OrderPositionModel model)
 {
     entity.PositionNumber = model.PositionNumber;
     entity.Pieces         = model.Pieces;
     entity.Text           = model.Text;
     entity.Price          = model.Price;
     entity.Total          = model.PositionNumber * model.Price;
 }
Example #3
0
        public OrderModel ReOrder(int orderId)
        {
            var entity = _orderRepository.AllIncluding(x => x.OrderPositions).SingleOrDefault(x => x.ID == orderId);

            if (entity != null)
            {
                // Copy from the existing order and then set the order date to today
                var newOrder = new Order();
                newOrder.CopyFrom(entity);
                newOrder.OrderDate    = DateTime.Now;
                newOrder.DeliveryDate = null;

                _orderRepository.Add(newOrder);
                _unitOfWork.Commit();

                var orderModel = new OrderModel
                {
                    OrderId        = newOrder.ID,
                    OrderDate      = newOrder.OrderDate,
                    CustomerNumber = newOrder.CustomerNumber,
                    DeliveryDate   = newOrder.DeliveryDate,
                    TotalPrice     = newOrder.TotalPrice
                };

                if (newOrder.OrderPositions != null)
                {
                    orderModel.OrderPositions = new List <OrderPositionModel>();
                    foreach (var positionEntity in newOrder.OrderPositions)
                    {
                        var positionModel = new OrderPositionModel
                        {
                            OrderId         = positionEntity.OrderID,
                            PositionOrderId = positionEntity.ID,
                            PositionNumber  = positionEntity.PositionNumber,
                            Pieces          = positionEntity.Pieces,
                            Text            = positionEntity.Text,
                            Price           = positionEntity.Price,
                        };
                        orderModel.OrderPositions.Add(positionModel);
                    }
                }
                return(orderModel);
            }
            return(null);
        }
Example #4
0
        public OrderModel FindOrderBy(int orderId, bool includedPositions)
        {
            IQueryable <Order> entiryQuery = includedPositions ? _orderRepository.AllIncluding(x => x.OrderPositions) : _orderRepository.All;
            var entity = entiryQuery.SingleOrDefault(x => x.ID == orderId);

            if (entity != null)
            {
                var order = new OrderModel
                {
                    OrderId        = entity.ID,
                    OrderDate      = entity.OrderDate,
                    CustomerNumber = entity.CustomerNumber,
                    DeliveryDate   = entity.DeliveryDate,
                    TotalPrice     = entity.TotalPrice
                };

                if (entity.OrderPositions != null)
                {
                    order.OrderPositions = new List <OrderPositionModel>();
                    foreach (var positionEntity in entity.OrderPositions)
                    {
                        var positionModel = new OrderPositionModel
                        {
                            OrderId         = positionEntity.OrderID,
                            PositionOrderId = positionEntity.ID,
                            PositionNumber  = positionEntity.PositionNumber,
                            Pieces          = positionEntity.Pieces,
                            Text            = positionEntity.Text,
                            Price           = positionEntity.Price,
                        };
                        order.OrderPositions.Add(positionModel);
                    }
                }

                return(order);
            }
            return(null);
        }