Try your search with a different keyword or use * as a wildcard.
using Nop.Core;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Orders;
using Nop.Core.Domain.Tax;
namespace Nop.Services.Customers;
///
/// Customer service interface
///
public partial interface ICustomerService
{
#region Customers
///
/// Gets all customers
///
/// Created date from (UTC); null to load all records
/// Created date to (UTC); null to load all records
/// Last activity date from (UTC); null to load all records
/// Last activity date to (UTC); null to load all records
/// Affiliate identifier
/// Vendor identifier
/// A list of customer role identifiers to filter by (at least one match); pass null or empty list in order to load all customers;
/// Email; null to load all customers
/// Username; null to load all customers
/// First name; null to load all customers
/// Last name; null to load all customers
/// Day of birth; 0 to load all customers
/// Month of birth; 0 to load all customers
/// Company; null to load all customers
/// Phone; null to load all customers
/// Phone; null to load all customers
/// IP address; null to load all customers
/// Page index
/// Page size
/// A value in indicating whether you want to load only total number of records. Set to "true" if you don't want to load data from database
///
/// A task that represents the asynchronous operation
/// The task result contains the customers
///
Task> GetAllCustomersAsync(DateTime? createdFromUtc = null, DateTime? createdToUtc = null,
DateTime? lastActivityFromUtc = null, DateTime? lastActivityToUtc = null,
int affiliateId = 0, int vendorId = 0, int[] customerRoleIds = null,
string email = null, string username = null, string firstName = null, string lastName = null,
int dayOfBirth = 0, int monthOfBirth = 0,
string company = null, string phone = null, string zipPostalCode = null, string ipAddress = null,
int pageIndex = 0, int pageSize = int.MaxValue, bool getOnlyTotalCount = false);
///
/// Gets online customers
///
/// Customer last activity date (from)
/// A list of customer role identifiers to filter by (at least one match); pass null or empty list in order to load all customers;
/// Page index
/// Page size
///
/// A task that represents the asynchronous operation
/// The task result contains the customers
///
Task> GetOnlineCustomersAsync(DateTime lastActivityFromUtc,
int[] customerRoleIds, int pageIndex = 0, int pageSize = int.MaxValue);
///
/// Gets customers with shopping carts
///
/// Shopping cart type; pass null to load all records
/// Store identifier; pass 0 to load all records
/// Product identifier; pass null to load all records
/// Created date from (UTC); pass null to load all records
/// Created date to (UTC); pass null to load all records
/// Billing country identifier; pass null to load all records
/// Page index
/// Page size
///
/// A task that represents the asynchronous operation
/// The task result contains the customers
///
Task> GetCustomersWithShoppingCartsAsync(ShoppingCartType? shoppingCartType = null,
int storeId = 0, int? productId = null,
DateTime? createdFromUtc = null, DateTime? createdToUtc = null, int? countryId = null,
int pageIndex = 0, int pageSize = int.MaxValue);
///
/// Gets customer for shopping cart
///
/// Shopping cart
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task GetShoppingCartCustomerAsync(IList shoppingCart);
///
/// Delete a customer
///
/// Customer
/// A task that represents the asynchronous operation
Task DeleteCustomerAsync(Customer customer);
///
/// Gets built-in system record used for background tasks
///
///
/// A task that represents the asynchronous operation
/// The task result contains a customer object
///
Task GetOrCreateBackgroundTaskUserAsync();
///
/// Gets built-in system guest record used for requests from search engines
///
///
/// A task that represents the asynchronous operation
/// The task result contains a customer object
///
Task GetOrCreateSearchEngineUserAsync();
///
/// Gets a customer
///
/// Customer identifier
///
/// A task that represents the asynchronous operation
/// The task result contains a customer
///
Task GetCustomerByIdAsync(int customerId);
///
/// Get customers by identifiers
///
/// Customer identifiers
///
/// A task that represents the asynchronous operation
/// The task result contains the customers
///
Task> GetCustomersByIdsAsync(int[] customerIds);
///
/// Get customers by guids
///
/// Customer guids
///
/// A task that represents the asynchronous operation
/// The task result contains the customers
///
Task> GetCustomersByGuidsAsync(Guid[] customerGuids);
///
/// Gets a customer by GUID
///
/// Customer GUID
///
/// A task that represents the asynchronous operation
/// The task result contains a customer
///
Task GetCustomerByGuidAsync(Guid customerGuid);
///
/// Get customer by email
///
/// Email
///
/// A task that represents the asynchronous operation
/// The task result contains the customer
///
Task GetCustomerByEmailAsync(string email);
///
/// Get customer by system role
///
/// System name
///
/// A task that represents the asynchronous operation
/// The task result contains the customer
///
Task GetCustomerBySystemNameAsync(string systemName);
///
/// Get customer by username
///
/// Username
///
/// A task that represents the asynchronous operation
/// The task result contains the customer
///
Task GetCustomerByUsernameAsync(string username);
///
/// Insert a guest customer
///
///
/// A task that represents the asynchronous operation
/// The task result contains the customer
///
Task InsertGuestCustomerAsync();
///
/// Insert a customer
///
/// Customer
/// A task that represents the asynchronous operation
Task InsertCustomerAsync(Customer customer);
///
/// Updates the customer
///
/// Customer
/// A task that represents the asynchronous operation
Task UpdateCustomerAsync(Customer customer);
///
/// Reset data required for checkout
///
/// Customer
/// Store identifier
/// A value indicating whether to clear coupon code
/// A value indicating whether to clear selected checkout attributes
/// A value indicating whether to clear "Use reward points" flag
/// A value indicating whether to clear selected shipping method
/// A value indicating whether to clear selected payment method
/// A task that represents the asynchronous operation
Task ResetCheckoutDataAsync(Customer customer, int storeId,
bool clearCouponCodes = false, bool clearCheckoutAttributes = false,
bool clearRewardPoints = true, bool clearShippingMethod = true,
bool clearPaymentMethod = true);
///
/// Delete guest customer records
///
/// Created date from (UTC); null to load all records
/// Created date to (UTC); null to load all records
/// A value indicating whether to delete customers only without shopping cart
///
/// A task that represents the asynchronous operation
/// The task result contains the number of deleted customers
///
Task DeleteGuestCustomersAsync(DateTime? createdFromUtc, DateTime? createdToUtc, bool onlyWithoutShoppingCart);
///
/// Gets a tax display type for the customer
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the tax display type
///
Task GetCustomerTaxDisplayTypeAsync(Customer customer);
///
/// Gets a default tax display type (if configured)
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task GetCustomerDefaultTaxDisplayTypeAsync(Customer customer);
///
/// Get full name
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the customer full name
///
Task GetCustomerFullNameAsync(Customer customer);
///
/// Formats the customer name
///
/// Source
/// Strip too long customer name
/// Maximum customer name length
///
/// A task that represents the asynchronous operation
/// The task result contains the formatted text
///
Task FormatUsernameAsync(Customer customer, bool stripTooLong = false, int maxLength = 0);
///
/// Gets coupon codes
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the coupon codes
///
Task ParseAppliedDiscountCouponCodesAsync(Customer customer);
///
/// Adds a coupon code
///
/// Customer
/// Coupon code
///
/// A task that represents the asynchronous operation
/// The task result contains the new coupon codes document
///
Task ApplyDiscountCouponCodeAsync(Customer customer, string couponCode);
///
/// Removes a coupon code
///
/// Customer
/// Coupon code to remove
///
/// A task that represents the asynchronous operation
/// The task result contains the new coupon codes document
///
Task RemoveDiscountCouponCodeAsync(Customer customer, string couponCode);
///
/// Gets coupon codes
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the coupon codes
///
Task ParseAppliedGiftCardCouponCodesAsync(Customer customer);
///
/// Adds a coupon code
///
/// Customer
/// Coupon code
///
/// A task that represents the asynchronous operation
/// The task result contains the new coupon codes document
///
Task ApplyGiftCardCouponCodeAsync(Customer customer, string couponCode);
///
/// Removes a coupon code
///
/// Customer
/// Coupon code to remove
///
/// A task that represents the asynchronous operation
/// The task result contains the new coupon codes document
///
Task RemoveGiftCardCouponCodeAsync(Customer customer, string couponCode);
///
/// Returns a list of guids of not existing customers
///
/// The guids of the customers to check
///
/// A task that represents the asynchronous operation
/// The task result contains the list of guids not existing customers
///
Task GetNotExistingCustomersAsync(Guid[] guids);
#endregion
#region Customer roles
///
/// Add a customer-customer role mapping
///
/// Customer-customer role mapping
/// A task that represents the asynchronous operation
Task AddCustomerRoleMappingAsync(CustomerCustomerRoleMapping roleMapping);
///
/// Remove a customer-customer role mapping
///
/// Customer
/// Customer role
/// A task that represents the asynchronous operation
Task RemoveCustomerRoleMappingAsync(Customer customer, CustomerRole role);
///
/// Delete a customer role
///
/// Customer role
/// A task that represents the asynchronous operation
Task DeleteCustomerRoleAsync(CustomerRole customerRole);
///
/// Gets a customer role
///
/// Customer role identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the customer role
///
Task GetCustomerRoleByIdAsync(int customerRoleId);
///
/// Gets a customer role
///
/// Customer role system name
///
/// A task that represents the asynchronous operation
/// The task result contains the customer role
///
Task GetCustomerRoleBySystemNameAsync(string systemName);
///
/// Get customer role identifiers
///
/// Customer
/// A value indicating whether to load hidden records
///
/// A task that represents the asynchronous operation
/// The task result contains the customer role identifiers
///
Task GetCustomerRoleIdsAsync(Customer customer, bool showHidden = false);
///
/// Gets list of customer roles
///
/// Customer
/// A value indicating whether to load hidden records
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task> GetCustomerRolesAsync(Customer customer, bool showHidden = false);
///
/// Gets all customer roles
///
/// A value indicating whether to show hidden records
///
/// A task that represents the asynchronous operation
/// The task result contains the customer roles
///
Task> GetAllCustomerRolesAsync(bool showHidden = false);
///
/// Inserts a customer role
///
/// Customer role
/// A task that represents the asynchronous operation
Task InsertCustomerRoleAsync(CustomerRole customerRole);
///
/// Gets a value indicating whether customer is in a certain customer role
///
/// Customer
/// Customer role system name
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsInCustomerRoleAsync(Customer customer, string customerRoleSystemName, bool onlyActiveCustomerRoles = true);
///
/// Gets a value indicating whether customer is administrator
///
/// Customer
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsAdminAsync(Customer customer, bool onlyActiveCustomerRoles = true);
///
/// Gets a value indicating whether customer is a forum moderator
///
/// Customer
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsForumModeratorAsync(Customer customer, bool onlyActiveCustomerRoles = true);
///
/// Gets a value indicating whether customer is registered
///
/// Customer
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsRegisteredAsync(Customer customer, bool onlyActiveCustomerRoles = true);
///
/// Gets a value indicating whether customer is guest
///
/// Customer
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsGuestAsync(Customer customer, bool onlyActiveCustomerRoles = true);
///
/// Gets a value indicating whether customer is vendor
///
/// Customer
/// A value indicating whether we should look only in active customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsVendorAsync(Customer customer, bool onlyActiveCustomerRoles = true);
///
/// Updates the customer role
///
/// Customer role
/// A task that represents the asynchronous operation
Task UpdateCustomerRoleAsync(CustomerRole customerRole);
#endregion
#region Customer passwords
///
/// Gets customer passwords
///
/// Customer identifier; pass null to load all records
/// Password format; pass null to load all records
/// Number of returning passwords; pass null to load all records
///
/// A task that represents the asynchronous operation
/// The task result contains the list of customer passwords
///
Task> GetCustomerPasswordsAsync(int? customerId = null,
PasswordFormat? passwordFormat = null, int? passwordsToReturn = null);
///
/// Get current customer password
///
/// Customer identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the customer password
///
Task GetCurrentPasswordAsync(int customerId);
///
/// Insert a customer password
///
/// Customer password
/// A task that represents the asynchronous operation
Task InsertCustomerPasswordAsync(CustomerPassword customerPassword);
///
/// Update a customer password
///
/// Customer password
/// A task that represents the asynchronous operation
Task UpdateCustomerPasswordAsync(CustomerPassword customerPassword);
///
/// Check whether password recovery token is valid
///
/// Customer
/// Token to validate
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsPasswordRecoveryTokenValidAsync(Customer customer, string token);
///
/// Check whether password recovery link is expired
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task IsPasswordRecoveryLinkExpiredAsync(Customer customer);
///
/// Check whether customer password is expired
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains true if password is expired; otherwise false
///
Task IsPasswordExpiredAsync(Customer customer);
#endregion
#region Customer address mapping
///
/// Gets a list of addresses mapped to customer
///
/// Customer identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the
///
Task> GetAddressesByCustomerIdAsync(int customerId);
///
/// Gets a address mapped to customer
///
/// Customer identifier
/// Address identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task GetCustomerAddressAsync(int customerId, int addressId);
///
/// Gets a customer billing address
///
/// Customer identifier
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task GetCustomerBillingAddressAsync(Customer customer);
///
/// Gets a customer shipping address
///
/// Customer
///
/// A task that represents the asynchronous operation
/// The task result contains the result
///
Task GetCustomerShippingAddressAsync(Customer customer);
///
/// Remove a customer-address mapping record
///
/// Customer
/// Address
/// A task that represents the asynchronous operation
Task RemoveCustomerAddressAsync(Customer customer, Address address);
///
/// Inserts a customer-address mapping record
///
/// Customer
/// Address
/// A task that represents the asynchronous operation
Task InsertCustomerAddressAsync(Customer customer, Address address);
#endregion
}