public void DatabaseObjectsGraph_DuplicateProperty() { var g = new DatabaseObjectsGraph(); var c1 = new DatabaseObject(DatabaseObjectType.Column, "C1"); g.AddDatabaseObject(c1); g.AddProperty(c1, new RelevantToFinancialReportingProperty()); Assert.Throws <ArgumentException>(() => g.AddProperty(c1, new RelevantToFinancialReportingProperty())); }
public HttpResponseMessage Post(int objectId, ViewModels.DatabaseObjectProperty viewModelObjectProperty) { try { var objectProperty = Mapper.Map <ObjectProperty>(viewModelObjectProperty); _graph.AddProperty(objectId, objectProperty); // Return HTTP 201 Created with Location http://localhost:3500/api/object/4 and object in the body var item = Get(objectId); var response = Request.CreateResponse <ViewModels.DatabaseObject>(HttpStatusCode.Created, item); string uri = Url.Link("GetObjectById", new { objectId = objectId }); response.Headers.Location = new Uri(uri); return(response); } catch (ArgumentException) { // .. or HTTP 409 if dup var resp = new HttpResponseMessage(HttpStatusCode.Conflict) { Content = new StringContent($"Property {viewModelObjectProperty.PropertyType} already exists."), ReasonPhrase = "Duplicate property" }; throw new HttpResponseException(resp); } }