public UserAccount(UserAccountRequest copyObject)
 {
     Email = copyObject.Email;
     DateOfBirth = copyObject.DateOfBirth;
     PhoneNumber = copyObject.PhoneNumber;
     Password = copyObject.Password;
     Name = copyObject.Name;
 }
        public void THEN_we_can_use_value_comparison()
        {
            var userRequest = new UserAccountRequest() { Email = "*****@*****.**"};
            var second_userRequest = new UserAccountRequest() { Email = "*****@*****.**" };


            //Assert.Equal(userRequest, second_userRequest);
            //userRequest.ShouldBeEquivalentTo(second_userRequest);
        }
        internal RegistrationResult RegisterUser(UserAccountRequest userAccountRequest)
        {
            if (string.IsNullOrEmpty(userAccountRequest.Email) || string.IsNullOrEmpty(userAccountRequest.Name) ||
                string.IsNullOrEmpty(userAccountRequest.Password) || userAccountRequest.DateOfBirth == DateTime.MinValue)
            {
                return new TooFewDataPassed();
            }

            if (userAccountRequest.DateOfBirth > DateTime.UtcNow.AddYears(-16))
            {
                return new UserIsTooYoung();
            }

            var newCard = new UserAccount(userAccountRequest);
            users.Add(newCard);

            return new RegistrationSuccesfull();
        }