public async Task <IActionResult> PutHousehold(long id, HouseholdDTO householdDto)
        {
            if (id != householdDto.Id)
            {
                return(BadRequest());
            }

            var household = await _context.Household.FindAsync(id);

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

            household.UserId = householdDto.UserId;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException) when(!HouseholdExists(id))
            {
                return(NotFound());
            }

            return(NoContent());
        }
        public async Task <ActionResult <HouseholdDTO> > PostHousehold(HouseholdDTO householdDto)
        {
            var household = new Household
            {
                UserId = householdDto.UserId,
            };

            _context.Household.Add(household);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(
                       nameof(GetHousehold),
                       new { id = household.Id },
                       ItemToDTO(household)));
        }
        public async Task <ActionResult <HouseholdDTO[]> > PostHousehold([FromRoute] string email, HouseholdDTO household)
        {
            var storedUser = await _userRepositary.FindByEmail(email);

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

            if (!await UserCanAccessProfile(storedUser))
            {
                return(Forbid());
            }

            var result = await _householdRepositary.Create(storedUser, _mapper.Map <Household>(household));

            return(Created($"/users/{email}/households/{result.Id}", result));
        }