public async Task UpdatePerson(PersonDetailsUpdate personDetails) { var personDd = await _personRepository.FindPerson(personDetails.Id); _mapper.Map(personDetails, personDd); await CreateRelationships(personDetails); await _personRepository.UpdatePerson(personDd); }
public async Task <int> AddPerson(PersonDetailsUpdate personDetails) { var personDb = _mapper.Map <PersonDb>(personDetails); var personId = await _personRepository.AddPerson(personDb); personDetails.Id = personId; await CreateRelationships(personDetails); return(personId); }
public async Task <ActionResult <PersonDetails> > UpdatePerson([FromBody] PersonDetailsUpdate personDetails, [FromHeader] string authorization) { if (string.IsNullOrEmpty(authorization)) { return(Unauthorized()); } var auth = FirebaseAuth.DefaultInstance; var fireBaseToken = await auth.VerifyIdTokenAsync(authorization); if (fireBaseToken.Claims.ContainsKey("edit") && (bool)fireBaseToken.Claims["edit"]) { await _familyRepository.UpdatePerson(personDetails); return(Ok(await _familyRepository.GetDetails(Roles.Admin, personDetails.Id))); } return(Unauthorized()); }
private async Task CreateRelationships(PersonDetailsUpdate personDetails) { if (personDetails.Id != 0) { await _personRepository.RemoveRelationships(personDetails.Id); } foreach (var parent in personDetails.Parents) { var parentDetails = await _personRepository.FindPerson(parent.Id); await _personRepository.AddRelationship(new RelationshipDb { Person1 = personDetails.Id, RelationShip = parentDetails.Gender == Gender.Female.ToString() ? Relationship.Mother.ToString() : Relationship.Father.ToString(), Person2 = parent.Id }); await _personRepository.AddRelationship(new RelationshipDb() { Person1 = parent.Id, RelationShip = personDetails.Gender == Gender.Female.ToString() ? Relationship.Daughter.ToString() : Relationship.Son.ToString(), Person2 = personDetails.Id }); } foreach (var spouse in personDetails.Spouses) { var spouseDetails = await _personRepository.FindPerson(spouse.Id); await _personRepository.AddRelationship(new RelationshipDb { Person1 = personDetails.Id, RelationShip = spouseDetails.Gender == Gender.Female.ToString() ? Relationship.Wife.ToString() : Relationship.Husband.ToString(), Person2 = spouse.Id }); await _personRepository.AddRelationship(new RelationshipDb() { Person1 = spouse.Id, RelationShip = personDetails.Gender == Gender.Female.ToString() ? Relationship.Wife.ToString() : Relationship.Husband.ToString(), Person2 = personDetails.Id }); } foreach (var child in personDetails.Children) { var childDetails = await _personRepository.FindPerson(child.Id); await _personRepository.AddRelationship(new RelationshipDb() { Person1 = personDetails.Id, RelationShip = childDetails.Gender == Gender.Female.ToString() ? Relationship.Daughter.ToString() : Relationship.Son.ToString(), Person2 = child.Id }); await _personRepository.AddRelationship(new RelationshipDb { Person1 = child.Id, RelationShip = personDetails.Gender == Gender.Female.ToString() ? Relationship.Mother.ToString() : Relationship.Father.ToString(), Person2 = personDetails.Id }); } }