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 static void UpdatePerson(this Person person, PersonViewModel personVm) { person.NhsNumber = personVm.NhsNumber; person.FirstName = personVm.FirstName; person.SurName = personVm.SurName; person.DateOfBirth = personVm.DateOfBirth; person.Adopted = personVm.Adopted; person.Twin = personVm.Twin; person.WeightKG = personVm.WeightKG; person.HeightCM = personVm.HeightCM; person.Deceased = personVm.Deceased; if (personVm.DateDeceased == null) { person.DateDeceased = DateTime.MinValue; } else { person.DateDeceased = personVm.DateDeceased; } person.FirstRegisteredDate = personVm.FirstRegisteredDate; person.Notes = personVm.Notes; if (personVm.DiagnosisID == 0) { personVm.DiagnosisID = null; } if (personVm.DiagnosisSubTypeID == 0) { personVm.DiagnosisSubTypeID = null; } person.DiagnosisId = personVm.DiagnosisID; person.DiagnosisSubTypeId = personVm.DiagnosisSubTypeID; person.EthnicityId = personVm.EthnicityID; person.FamilyId = personVm.FamilyID; person.Deleted = personVm.Deleted; person.Gender = personVm.Gender; }
public HttpResponseMessage Update(HttpRequestMessage request, PersonViewModel person) { 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 _person = _personRepository.GetSingle(person.ID); _person.UpdatePerson(person); if (_person.Deleted) { var personRelationships = _personRelationshipRepository.FindBy(p => p.RelationWithPersonId == person.ID).ToList(); foreach (var personRelationship in personRelationships) { _personRelationshipRepository.Delete(personRelationship); } } _unitOfWork.Commit(); response = request.CreateResponse(HttpStatusCode.OK); } return response; }); }
public HttpResponseMessage Delete(HttpRequestMessage request, PersonViewModel person) { 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 { var personDb = _personRepository.GetSingle(person.ID); if (personDb == null) response = request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid person."); else { personDb.UpdatePerson(person); _personRepository.Delete(personDb); _unitOfWork.Commit(); response = request.CreateResponse<PersonViewModel>(HttpStatusCode.OK, person); } } return response; }); }