public async Task <IActionResult> CreateRelationship([FromBody] RelationshipResource relationshipResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var person = await _unitOfWork.Persons.GetPerson(relationshipResource.PersonId, includeRelated : false);

            if (person == null)
            {
                return(NotFound());
            }

            var relatedPerson = await _unitOfWork.Persons.GetPerson(relationshipResource.PersonId, includeRelated : false);

            if (relatedPerson == null)
            {
                return(NotFound());
            }

            var relationship = _mapper.Map <RelationshipResource, Relationship>(relationshipResource);

            _unitOfWork.Relationships.Add(relationship);


            await _unitOfWork.CompleteAsync();

            return(Ok());
        }
        public async Task <IActionResult> RemoveRelationship([FromQuery] RelationshipResource relationshipResource)
        {
            var relationship = _mapper.Map <RelationshipResource, Relationship>(relationshipResource);

            var relationshipInDb = await _unitOfWork.Relationships.GetRelationship(relationship);

            if (relationshipInDb == null)
            {
                return(NotFound());
            }

            _unitOfWork.Relationships.Remove(relationship);
            await _unitOfWork.CompleteAsync();

            return(Ok());
        }
Exemple #3
0
 public abstract void Write(Utf8JsonWriter writer, ref TrackedResources tracked, RelationshipResource <T> value, JsonSerializerOptions options);