public int OrderSave(Order order_header)
        {
            if (order_header == null)
            {
                throw new ArgumentNullException(nameof(order_header));
            }

            return(ExecuteFaultHandledOperation(() =>
            {
                int order_header_key;
                var order_data = _order_se.Map(order_header);

                order_data.OrderItemCount = order_header.OrderItems.Sum(item => item.OrderItemQuantity);
                order_data.OrderValueSum = order_header.OrderItems.Sum(item => item.OrderItemLineSum);
                //order_data.OrderShipDate = order_header.OrderItems.Min(item => item.OrderItemShipDate).GetValueOrDefault();
                order_header_key = _order_header_repo.Save(order_data);

                Log.Info($"Order Item start [{order_header.OrderItems.Count}] items to process");
                foreach (var order_item in order_header.OrderItems)
                {
                    var order_item_data = _order_item_se.Map(order_item);
                    //Log.Info($"Order Item converted [{order_item_data.ProductName}] sucessfully!");
                    order_item_data.OrderKey = order_header_key;
                    order_item_data.OrderItemKey = order_item.OrderItemKey;

                    int order_item_key = _order_item_repo.Save(order_item_data);
                    Log.Info($"Order Item [{order_item_key}] saved to the database sucessfully!");
                }

                Log.Info($"Order Comments start [{order_header.Comments.Count}] items to process");
                foreach (var comment in order_header.Comments)
                {
                    comment.EntityKey = order_header_key;
                    comment.EntityTypeKey = (int)QIQOEntityType.Order;

                    int comment_key = _comment_be.CommentSave(comment);
                    Log.Info($"Order Comment [{comment_key}] saved to the database sucessfully!");
                }
                return order_header_key;
            }));
        }
Exemplo n.º 2
0
 public Task <List <Order> > GetOrdersAsync()
 {
     return(Task.Factory.StartNew(() => {
         return _orderEntityService.Map(_orderRepository.GetAll());
     }));
 }