//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;


namespace CommunityServer.Components
{
	/// <summary>
	/// Summary description for IMembership.
	/// </summary>
	public interface IMembership
	{
        IMembershipUser Create(string username,string password,string email,string question,string answer);
        void Update(IMembershipUser user);
        void Delete(string username);
        IMembershipUser InstantiateUser(string userName, object userKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChange, DateTime lastLockOutDate);
        IMembershipUser GetUser(string username);
        bool PasswordIsMembershipCompliant (string newPassword, out string errorMessage);
        CreateUserStatus GetCreateUserStatus(Exception ex);
        bool ValidateUser(string Username,string Password);
        string GeneratePassword(int length, int alphaNumbericCharacters);
	}

}
