public bool TryRegister( string email, string password, out string loginToken )
{
if ( emailRegex.IsMatch( email ) == false )
throw new FormatException( "invalid email address." );
loginToken = null;
var path = GetFilepath( email );
if ( File.Exists( path ) )
return false;
var encrypted = EncryptPassword( password );
var data = (dynamic) new JObject();
data.Email = email;
data.Password = encrypted;
data.UserID = Guid.NewGuid();
File.WriteAllText( path, ( (JObject) data ).ToString() );
loginToken = CreateLoginToken( (Guid) data.UserID, email );
return true;
}