public OrderLine Build(UnvalidatedOrderLine unvalidatedOrderLine) { OrderLine orderLine = null; var product = _productCatalogue.Get(unvalidatedOrderLine.ProductCode); if (unvalidatedOrderLine.ProductCode.StartsWith("W")) { var quantity = Convert.ToInt32(unvalidatedOrderLine.Quantity); orderLine = new WidgetOrderLine { Product = product, Quantity = quantity }; } else if (unvalidatedOrderLine.ProductCode.StartsWith("G")) { orderLine = new GizmoOrderLine { Product = product, Quantity = unvalidatedOrderLine.Quantity }; } return(orderLine); }