public HttpResponseMessage Post(ExternalReferenceDTO dto) { if (dto == null) { return(BadRequest()); } return (GetOwnerTypeAndId(dto) .Match ( onValue: typeAndId => _referenceService .AddReference ( typeAndId.Value, typeAndId.Key, dto.Title, dto.ExternalReferenceId, dto.URL, dto.Display ) .Match ( onSuccess: NewObjectCreated, onFailure: FromOperationError ), onNone: () => BadRequest("Target owner Id must be defined") )); }