Exemplo 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;
            });
        }
        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;
            });
        }