public TrocaBolasUser Register(TrocaBolasUser currentUser, string password)
        {
            // TODO : validate business logic
            var trocaBolasUser = _userRepository.Add(currentUser, password);

            return trocaBolasUser;
        }
        /// <exception cref="T:System.InvalidOperationException">The user was not created.</exception>
        /// <exception cref="MembershipCreateUserException">. </exception>
        public TrocaBolasUser Add(TrocaBolasUser currentUser, string password)
        {
            var membershipUser = Membership.CreateUser(currentUser.Username, password, currentUser.Email);

            if (membershipUser.ProviderUserKey == null)
            {
                throw new InvalidOperationException();
            }

            // add user to role
            Roles.AddUserToRole(membershipUser.UserName, "RegisteredUsers");

            var currentProfile = new TrocaBolasUserProfile();
            try
            {
                currentProfile.Address = currentUser.Address;
                currentProfile.Name = currentUser.Name;
                currentProfile.Phone = currentUser.Phone;
                currentProfile.Town = currentUser.Town;
                currentProfile.UserId = Guid.Parse(membershipUser.ProviderUserKey.ToString());
                currentProfile.ZipCode = currentUser.ZipCode;

                _context.Profiles.Add(currentProfile);
                _context.Save();
            }
            catch (Exception exception)
            {
                Membership.DeleteUser(membershipUser.UserName, true);
                Console.WriteLine(exception.Message);
                throw;
            }

            return new TrocaBolasUser(currentProfile.UserId, membershipUser.UserName, membershipUser.Email, currentProfile);
        }
 public void Register(TrocaBolasUser currentUser)
 {
 }