public HttpResponseMessage Create(HttpRequestMessage request, PersonViewModel person, int parentId = -1, int relationTypeId = -1) { return CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Person newPerson = new Person(); newPerson.UpdatePerson(person); _personRepository.Add(newPerson); _unitOfWork.Commit(); // Update view model person = Mapper.Map<Person, PersonViewModel>(newPerson); response = request.CreateResponse<PersonViewModel>(HttpStatusCode.Created, person); } if (parentId > -1) { PersonRelationship personRelationship = new PersonRelationship(); personRelationship.RelationshipFromPersonId = person.ID; personRelationship.RelationWithPersonId = (int)parentId; personRelationship.RelationshipTypeId = relationTypeId; _personRelationshipRepository.Add(personRelationship); _unitOfWork.Commit(); } return response; }); }
public HttpResponseMessage CreateRelationship(HttpRequestMessage request, PersonRelationshipViewModel personRelationship) { return CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { PersonRelationship newPersonRelationship = new PersonRelationship(); newPersonRelationship.UpdatePersonRelationship(personRelationship); _personRelationshipRepository.Add(newPersonRelationship); _unitOfWork.Commit(); // Update view model personRelationship = Mapper.Map<PersonRelationship, PersonRelationshipViewModel>(newPersonRelationship); response = request.CreateResponse<PersonRelationshipViewModel>(HttpStatusCode.Created, personRelationship); } return response; }); }