Esempio n. 1
0
        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;
            });
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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;
            });
        }
Esempio n. 4
0
        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;
            });
        }