private async Task <Family> CreateFamilyModel(RegisterFamilyModel registration)
        {
            var family = new Family {
                ParentFirstName = registration.ParentFirstName,
                ParentLastName  = registration.ParentLastName,
                Phone           = registration.Phone,
                Email           = registration.Email
            };

            if (!registration.IsShippingToCharity)
            {
                family.ShippingAddress = new Address {
                    LineOne    = registration.ShippingAddress.LineOne,
                    LineTwo    = registration.ShippingAddress.LineTwo,
                    City       = registration.ShippingAddress.City,
                    State      = registration.ShippingAddress.State,
                    PostalCode = registration.ShippingAddress.PostalCode
                };
            }

            _db.Families.Add(family);
            await _db.SaveChangesAsync();

            return(family);
        }
        public async Task <ActionResult> Register(RegisterFamilyModel registration)
        {
            if (!ModelState.IsValid)
            {
                return(View(registration));
            }

            var family = await CreateFamilyModel(registration);

            var familyCredentials = await CreateFamilyAccount(family);

            TempData["registeredFamily"] = new RegisteredFamilyViewModel {
                Id       = family.Id,
                LastName = family.ParentLastName,
                Username = familyCredentials.Username,
                Password = familyCredentials.Password
            };

            return(RedirectToAction("Register"));
        }