Try your search with a different keyword or use * as a wildcard.
using Nop.Core;
using Nop.Core.Domain.Messages;
using Nop.Data;
namespace Nop.Services.Messages;
///
/// Email account service
///
public partial class EmailAccountService : IEmailAccountService
{
#region Fields
protected readonly IRepository _emailAccountRepository;
#endregion
#region Ctor
public EmailAccountService(IRepository emailAccountRepository)
{
_emailAccountRepository = emailAccountRepository;
}
#endregion
#region Methods
///
/// Inserts an email account
///
/// Email account
/// A task that represents the asynchronous operation
public virtual async Task InsertEmailAccountAsync(EmailAccount emailAccount)
{
ArgumentNullException.ThrowIfNull(emailAccount);
emailAccount.Email = CommonHelper.EnsureNotNull(emailAccount.Email);
emailAccount.DisplayName = CommonHelper.EnsureNotNull(emailAccount.DisplayName);
emailAccount.Host = CommonHelper.EnsureNotNull(emailAccount.Host);
emailAccount.Username = CommonHelper.EnsureNotNull(emailAccount.Username);
emailAccount.Password = CommonHelper.EnsureNotNull(emailAccount.Password);
emailAccount.Email = emailAccount.Email.Trim();
emailAccount.DisplayName = emailAccount.DisplayName.Trim();
emailAccount.Host = emailAccount.Host.Trim();
emailAccount.Username = emailAccount.Username.Trim();
emailAccount.Password = emailAccount.Password.Trim();
emailAccount.Email = CommonHelper.EnsureMaximumLength(emailAccount.Email, 255);
emailAccount.DisplayName = CommonHelper.EnsureMaximumLength(emailAccount.DisplayName, 255);
emailAccount.Host = CommonHelper.EnsureMaximumLength(emailAccount.Host, 255);
emailAccount.Username = CommonHelper.EnsureMaximumLength(emailAccount.Username, 255);
emailAccount.Password = CommonHelper.EnsureMaximumLength(emailAccount.Password, 255);
await _emailAccountRepository.InsertAsync(emailAccount);
}
///
/// Updates an email account
///
/// Email account
/// A task that represents the asynchronous operation
public virtual async Task UpdateEmailAccountAsync(EmailAccount emailAccount)
{
ArgumentNullException.ThrowIfNull(emailAccount);
emailAccount.Email = CommonHelper.EnsureNotNull(emailAccount.Email);
emailAccount.DisplayName = CommonHelper.EnsureNotNull(emailAccount.DisplayName);
emailAccount.Host = CommonHelper.EnsureNotNull(emailAccount.Host);
emailAccount.Username = CommonHelper.EnsureNotNull(emailAccount.Username);
emailAccount.Password = CommonHelper.EnsureNotNull(emailAccount.Password);
emailAccount.Email = emailAccount.Email.Trim();
emailAccount.DisplayName = emailAccount.DisplayName.Trim();
emailAccount.Host = emailAccount.Host.Trim();
emailAccount.Username = emailAccount.Username.Trim();
emailAccount.Password = emailAccount.Password.Trim();
emailAccount.Email = CommonHelper.EnsureMaximumLength(emailAccount.Email, 255);
emailAccount.DisplayName = CommonHelper.EnsureMaximumLength(emailAccount.DisplayName, 255);
emailAccount.Host = CommonHelper.EnsureMaximumLength(emailAccount.Host, 255);
emailAccount.Username = CommonHelper.EnsureMaximumLength(emailAccount.Username, 255);
emailAccount.Password = CommonHelper.EnsureMaximumLength(emailAccount.Password, 255);
await _emailAccountRepository.UpdateAsync(emailAccount);
}
///
/// Deletes an email account
///
/// Email account
/// A task that represents the asynchronous operation
public virtual async Task DeleteEmailAccountAsync(EmailAccount emailAccount)
{
ArgumentNullException.ThrowIfNull(emailAccount);
if ((await GetAllEmailAccountsAsync()).Count == 1)
throw new NopException("You cannot delete this email account. At least one account is required.");
await _emailAccountRepository.DeleteAsync(emailAccount);
}
///
/// Gets an email account by identifier
///
/// The email account identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the email account
///
public virtual async Task GetEmailAccountByIdAsync(int emailAccountId)
{
return await _emailAccountRepository.GetByIdAsync(emailAccountId, cache => default);
}
///
/// Gets all email accounts
///
///
/// A task that represents the asynchronous operation
/// The task result contains the email accounts list
///
public virtual async Task> GetAllEmailAccountsAsync()
{
var emailAccounts = await _emailAccountRepository.GetAllAsync(query =>
{
return from ea in query
orderby ea.Id
select ea;
}, cache => default);
return emailAccounts;
}
#endregion
}