Try your search with a different keyword or use * as a wildcard.
using Nop.Core.Domain.Messages;
using Nop.Data;
using Nop.Services.Catalog;
using Nop.Services.Stores;
namespace Nop.Services.Messages;
/// <summary>
/// Represents newsletter subscription type service implementation
/// </summary>
public partial class NewsLetterSubscriptionTypeService : INewsLetterSubscriptionTypeService
{
#region Fields
protected readonly IRepository<NewsLetterSubscriptionType> _newsLetterSubscriptionTypeRepository;
protected readonly IStoreMappingService _storeMappingService;
#endregion
#region Ctor
public NewsLetterSubscriptionTypeService(IRepository<NewsLetterSubscriptionType> newsLetterSubscriptionTypeRepository,
IStoreMappingService storeMappingService)
{
_newsLetterSubscriptionTypeRepository = newsLetterSubscriptionTypeRepository;
_storeMappingService = storeMappingService;
}
#endregion
#region Methods
/// <summary>
/// Inserts a newsletter subscription type
/// </summary>
/// <param name="newsLetterSubscriptionType">Newsletter subscription type</param>
/// <returns>A task that represents the asynchronous operation</returns>
public virtual async Task InsertNewsLetterSubscriptionTypeAsync(NewsLetterSubscriptionType newsLetterSubscriptionType)
{
ArgumentNullException.ThrowIfNull(newsLetterSubscriptionType);
await _newsLetterSubscriptionTypeRepository.InsertAsync(newsLetterSubscriptionType);
}
/// <summary>
/// Updates a newsletter subscription type
/// </summary>
/// <param name="newsLetterSubscriptionType">Newsletter subscription type</param>
/// <returns>A task that represents the asynchronous operation</returns>
public virtual async Task UpdateNewsLetterSubscriptionTypeAsync(NewsLetterSubscriptionType newsLetterSubscriptionType)
{
ArgumentNullException.ThrowIfNull(newsLetterSubscriptionType);
await _newsLetterSubscriptionTypeRepository.UpdateAsync(newsLetterSubscriptionType);
}
/// <summary>
/// Deletes a newsletter subscription type
/// </summary>
/// <param name="newsLetterSubscriptionType">Newsletter subscription type</param>
/// <returns>A task that represents the asynchronous operation</returns>
public virtual async Task DeleteNewsLetterSubscriptionTypeAsync(NewsLetterSubscriptionType newsLetterSubscriptionType)
{
ArgumentNullException.ThrowIfNull(newsLetterSubscriptionType);
await _newsLetterSubscriptionTypeRepository.DeleteAsync(newsLetterSubscriptionType);
}
/// <summary>
/// Gets a newsletter subscription type by newsletter subscription type identifier
/// </summary>
/// <param name="newsLetterSubscriptionTypeId">The newsletter subscription type identifier</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the newsletter subscription type
/// </returns>
public virtual async Task<NewsLetterSubscriptionType> GetNewsLetterSubscriptionTypeByIdAsync(int newsLetterSubscriptionTypeId)
{
return await _newsLetterSubscriptionTypeRepository.GetByIdAsync(newsLetterSubscriptionTypeId, cache => default);
}
/// <summary>
/// Gets the newsletter subscription type list
/// </summary>
/// <param name="storeId">Load records allowed only in a specified store; pass 0 to load all records</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the newsletter subscription types
/// </returns>
public virtual async Task<IList<NewsLetterSubscriptionType>> GetAllNewsLetterSubscriptionTypesAsync(int storeId = 0)
{
return await _newsLetterSubscriptionTypeRepository.GetAllAsync(async query =>
{
if (storeId > 0)
query = await _storeMappingService.ApplyStoreMapping(query, storeId);
query = query
.OrderBy(subscriptionType => subscriptionType.DisplayOrder)
.ThenBy(subscriptionType => subscriptionType.Id);
return query;
});
}
#endregion
}