public async Task <HouseholdDto> AddFamilyMember(int id, FamilyMemberDto familyMemberDto) { var household = await _context.Household .Include(p => p.FamilyMembers) .FirstOrDefaultAsync(x => x.Id == id); FamilyMember spouse = null; if (familyMemberDto.Spouse != null) { spouse = await _familyMemberBc.GetFamilyMember(familyMemberDto.Spouse); if (spouse == null) { throw new NotFoundException($"Spouse Id {familyMemberDto.Spouse} not found"); } } var familyMember = familyMemberDto.ToFamilyMember(); household.FamilyMembers.Add(familyMember); _context.Entry(household).State = EntityState.Modified; _householdBc.ComputeHouseholdStatistics(household); await _context.SaveChangesAsync(); // spouse to be updated if (spouse != null) { spouse.Spouse = familyMember.Id; _context.Entry(spouse).State = EntityState.Modified; await _context.SaveChangesAsync(); } return(new HouseholdDto(household)); }
public async Task <ActionResult <HouseholdDto> > PostHouseholdFamilyMember(int id, FamilyMemberDto familyMemberDto) { try { var result = await _bc.AddFamilyMember(id, familyMemberDto); return(CreatedAtAction("GetHousehold", new { id = result.Id }, result)); } catch (NotFoundException nfe) { return(NotFound(nfe.Message)); } }