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");
        }
        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;
        }