/// Creates email user with the specified parameter sin persistence.
/// 
/// Parameters:
/// emailUserParams - the parameters of the email user
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if emailUserParams is null
/// ArgumentException if emailUserParams.UserId <= 0 or any property of emailUserParams is null
/// ProxiedEmailPersistenceException if some error occurred when persisting the proxy email mapping data
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spCreateEmailUser". See sections 1.3.2 and 1.3.3.1 of CS for details. Use properties of emailUserParams as SP parameters.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if emailUserParams is null
/// </@throws>
/// <@throws>
/// ArgumentException if emailUserParams.UserId <= 0 or any property of emailUserParams is null
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some error occurred when persisting the proxy email mapping data
/// </@throws>
/// <param name="emailUserParams">
/// the parameters of the email user
/// </param>
/// <param name="Return">
/// void
/// </param>
public void CreateEmailUser(EmailUserParams emailUserParams) {
}
/// Changes the flag indicating whether logging history is enabled for the user with the given parameters.
/// 
/// Parameters:
/// emailUserParams - the parameters that indicate the email user whose logging history must be enabled/disabled (only one of UserId, RealEmail and ProxyEmail must be specified)
/// enabled - true if logging history must be enabled, false - disabled
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if emailUserParams is null
/// ArgumentException if emailUserParams.UserId <= 0, if not exactly one of emailUserParams.UserId, emailUserParams.RealEmail and emailUserParams.ProxyEmail is not null
/// EmailUserNotFoundException if user for the specified parameters cannot be found
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spChangeLoggingHistoryEnabled". See sections 1.3.2 and 1.3.3.9 of CS for details. Use properties of emailUserParams and enabled as SP parameters.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if emailUserParams is null
/// </@throws>
/// <@throws>
/// ArgumentException if emailUserParams.UserId <= 0, if not exactly one of emailUserParams.UserId, emailUserParams.RealEmail and emailUserParams.ProxyEmail is not null
/// </@throws>
/// <@throws>
/// EmailUserNotFoundException if user for the specified parameters cannot be found
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// </@throws>
/// <param name="enabled">
/// true if logging history must be enabled, false - disabled
/// </param>
/// <param name="emailUserParams">
/// the parameters that indicate the email user whose logging history must be enabled/disabled (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="Return">
/// void
/// </param>
public void ChangeLoggingHistoryEnabledForUser(EmailUserParams emailUserParams, bool enabled) {
}
public bool IsLoggingHistoryEnabledForUser(EmailUserParams emailUserParams) {
return false;
}
/// Checks if one user is blocked globally or by another user using the specified user parameters.
/// 
/// Parameters:
/// blockedUserParams - the parameters that indicate the email user to be blocked/unblocked (only one of UserId, RealEmail and ProxyEmail must be specified)
/// blockedByUserParams - the parameters that indicate the email user who performs blocking/unblocking (only one of UserId, RealEmail and ProxyEmail must be specified)
/// 
/// Returns:
/// true if user is blocked globally or by another user, false otherwise
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if any argument is null
/// ArgumentException if blockedUserParams.UserId <= 0, blockedByUserParams.UserId <= 0, if not exactly one of blockedUserParams.UserId, blockedUserParams.RealEmail and blockedUserParams.ProxyEmail is not null, if not exactly one of blockedByUserParams.UserId, blockedByUserParams.RealEmail and blockedByUserParams.ProxyEmail is not null
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spGetUserBlocked". See sections 1.3.2 and 1.3.3.7 of CS for details. Use properties of blockedUserParams, blockedByUserParams as SP parameters.
/// 3. Return value returned by SP via dataAccess.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if any argument is null
/// </@throws>
/// <@throws>
/// ArgumentException if blockedUserParams.UserId <= 0, blockedByUserParams.UserId <= 0, if not exactly one of blockedUserParams.UserId, blockedUserParams.RealEmail and blockedUserParams.ProxyEmail is not null, if not exactly one of blockedByUserParams.UserId, blockedByUserParams.RealEmail and blockedByUserParams.ProxyEmail is not null
/// </@throws>
/// <@throws>
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// </@throws>
/// <param name="blockedByUserParams">
/// the parameters that indicate the email user who performs blocking/unblocking (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="blockedUserParams">
/// the parameters that indicate the email user to be blocked/unblocked (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="Return">
/// true if user is blocked globally or by another user, false otherwise
/// </param>
/// <returns>
/// true if user is blocked globally or by another user, false otherwise
/// </returns>
public bool IsUserBlocked(EmailUserParams blockedUserParams, EmailUserParams blockedByUserParams) {
return false;
}
/// Sets the state of the block from one user to another to enabled or disabled.
/// 
/// Parameters:
/// blockedUserParams - the parameters that indicate the email user to be blocked/unblocked (only one of UserId, RealEmail and ProxyEmail must be specified)
/// blockedByUserParams - the parameters that indicate the email user who performs blocking/unblocking (only one of UserId, RealEmail and ProxyEmail must be specified)
/// enabled - true if blocking must be enabled, false otherwise
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if any argument is null
/// ArgumentException if blockedUserParams.UserId <= 0, blockedByUserParams.UserId <= 0, if not exactly one of blockedUserParams.UserId, blockedUserParams.RealEmail and blockedUserParams.ProxyEmail is not null, if not exactly one of blockedByUserParams.UserId, blockedByUserParams.RealEmail and blockedByUserParams.ProxyEmail is not null
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spSetUsersBlock". See sections 1.3.2 and 1.3.3.6 of CS for details. Use properties of blockedUserParams, blockedByUserParams and enabled as SP parameters.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if any argument is null
/// </@throws>
/// <@throws>
/// ArgumentException if blockedUserParams.UserId <= 0, blockedByUserParams.UserId <= 0, if not exactly one of blockedUserParams.UserId, blockedUserParams.RealEmail and blockedUserParams.ProxyEmail is not null, if not exactly one of blockedByUserParams.UserId, blockedByUserParams.RealEmail and blockedByUserParams.ProxyEmail is not null
/// </@throws>
/// <@throws>
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// </@throws>
/// <param name="enabled">
/// true if blocking must be enabled, false otherwise
/// </param>
/// <param name="blockedByUserParams">
/// the parameters that indicate the email user who performs blocking/unblocking (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="blockedUserParams">
/// the parameters that indicate the email user to be blocked/unblocked (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="Return">
/// void
/// </param>
public void SetUsersBlock(EmailUserParams blockedUserParams, EmailUserParams blockedByUserParams, bool enabled) {
}
/// Deletes the email user record that matches the given parameters from persistence.
/// 
/// Parameters:
/// emailUserParams - the parameters that indicate the email user record to be deleted (only one of UserId, RealEmail and ProxyEmail must be specified)
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if emailUserParams is null
/// ArgumentException if emailUserParams.UserId <= 0, if not exactly one of emailUserParams.UserId, emailUserParams.RealEmail and emailUserParams.ProxyEmail is not null
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spDeleteEmailUser". See sections 1.3.2 and 1.3.3.4 of CS for details. Use properties of emailUserParams as SP parameters.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if emailUserParams is null
/// </@throws>
/// <@throws>
/// ArgumentException if emailUserParams.UserId <= 0, if not exactly one of emailUserParams.UserId, emailUserParams.RealEmail and emailUserParams.ProxyEmail is not null
/// </@throws>
/// <@throws>
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// </@throws>
/// <param name="emailUserParams">
/// the parameters that indicate the email user record to be deleted (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="Return">
/// void
/// </param>
public void DeleteEmailUser(EmailUserParams emailUserParams) {
}
public EmailUserParams GetEmailUser(EmailUserParams emailUserParams) {
return null;
}
/// Updates the parameters of the specified email user in persistence.
/// 
/// Parameters:
/// existingUserParams - the parameters that indicate the email user record to be updated (only one of UserId, RealEmail and ProxyEmail must be specified)
/// updatedUserParams - the new parameters for the email user record (at least one property must be not null, null property indicates parameters that don't need to be updated)
/// 
/// Throws:
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// ArgumentNullException if any argument is null
/// ArgumentException if existingUserParams.UserId <= 0, updatedUserParams.UserId <= 0, if not exactly one of existingUserParams.UserId, existingUserParams.RealEmail and existingUserParams.ProxyEmail is not null, if all properties of updatedUserParams are equal to null
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// 
/// Implementation Notes:
/// 1. If dataAccess is null then throw InvalidOperationException.
/// 2. Call stored procedure "spUpdateEmailUser". See sections 1.3.2 and 1.3.3.2 of CS for details. Use properties of existingUserParams and updatedUserParams as SP parameters.
/// <@throws>
/// InvalidOperationException if this persistence was not properly configured with Configure() method
/// </@throws>
/// <@throws>
/// ArgumentNullException if any argument is null
/// </@throws>
/// <@throws>
/// ArgumentException if existingUserParams.UserId <= 0, updatedUserParams.UserId <= 0, if not exactly one of existingUserParams.UserId, existingUserParams.RealEmail and existingUserParams.ProxyEmail is not null, if all properties of updatedUserParams are equal to null
/// </@throws>
/// <@throws>
/// EmailUserNotFoundException if user with the given parameters cannot be found
/// </@throws>
/// <@throws>
/// ProxiedEmailPersistenceException if some other error occurred when accessing the persistence
/// </@throws>
/// <param name="updatedUserParams">
/// the new parameters for the email user record (at least one property must be not null, null property indicates parameters that don't need to be updated)
/// </param>
/// <param name="existingUserParams">
/// the parameters that indicate the email user record to be updated (only one of UserId, RealEmail and ProxyEmail must be specified)
/// </param>
/// <param name="Return">
/// void
/// </param>
public void UpdateEmailUser(EmailUserParams existingUserParams, EmailUserParams updatedUserParams) {
}