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); } })); }