public Order GetOrderByID(int order_header_key)
        {
            Log.Info("Accessing OrderHeaderBusinessEngine GetOrderHeaderByID function");
            return(ExecuteFaultHandledOperation(() =>
            {
                var order_header_data = _order_header_repo.GetByID(order_header_key);
                Log.Info("OrderHeaderBusinessEngine GetByID function completed");

                if (order_header_data.OrderKey != 0)
                {
                    var order_header = Map(order_header_data);
                    order_header.Account = _account_be.GetAccountByID(order_header.AccountKey, true);

                    var order_items = new List <OrderItem>();
                    var order_items_data = _order_item_repo.GetAll(order_header_data);

                    foreach (var ord_item_data in order_items_data)
                    {
                        order_items.Add(MapOrderItemDataToOrderItem(ord_item_data));
                        //*****!! GET ORDER ITEM ADDRESSES, PRODUCT, TOO!!! ******// -> Done in MapOrderItemDataToOrderItem, dickweed!
                    }
                    order_header.OrderItems = order_items;
                    order_header.Comments = _comment_be.GetCommentsByEntity(order_header_data.OrderKey, QIQOEntityType.Order);
                    return order_header;
                }
                else
                {
                    NotFoundException ex = new NotFoundException(string.Format("Order with key {0} is not in database", order_header_key));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }
            }));
        }