using Nop.Core.Domain.Catalog; using Nop.Core.Domain.Customers; using Nop.Core.Domain.Orders; using Nop.Web.Models.Customer; namespace Nop.Web.Factories; /// /// Represents the interface of the customer model factory /// public partial interface ICustomerModelFactory { /// /// Prepare the customer info model /// /// Customer info model /// Customer /// Whether to exclude populating of model properties from the entity /// Overridden customer attributes in XML format; pass null to use CustomCustomerAttributes of customer /// /// A task that represents the asynchronous operation /// The task result contains the customer info model /// Task PrepareCustomerInfoModelAsync(CustomerInfoModel model, Customer customer, bool excludeProperties, string overrideCustomCustomerAttributesXml = ""); /// /// Prepare the customer register model /// /// Customer register model /// Whether to exclude populating of model properties from the entity /// Overridden customer attributes in XML format; pass null to use CustomCustomerAttributes of customer /// Whether to populate model properties by default values /// /// A task that represents the asynchronous operation /// The task result contains the customer register model /// Task PrepareRegisterModelAsync(RegisterModel model, bool excludeProperties, string overrideCustomCustomerAttributesXml = "", bool setDefaultValues = false); /// /// Prepare the login model /// /// Whether to checkout as guest is enabled /// /// A task that represents the asynchronous operation /// The task result contains the login model /// Task PrepareLoginModelAsync(bool? checkoutAsGuest); /// /// Prepare the password recovery model /// /// Password recovery model /// /// A task that represents the asynchronous operation /// The task result contains the password recovery model /// Task PreparePasswordRecoveryModelAsync(PasswordRecoveryModel model); /// /// Prepare the register result model /// /// Value of UserRegistrationType enum /// URL to redirect /// /// A task that represents the asynchronous operation /// The task result contains the register result model /// Task PrepareRegisterResultModelAsync(int resultId, string returnUrl); /// /// Prepare the customer navigation model /// /// Identifier of the selected tab /// /// A task that represents the asynchronous operation /// The task result contains the customer navigation model /// Task PrepareCustomerNavigationModelAsync(int selectedTabId = 0); /// /// Prepare the customer address list model /// /// /// A task that represents the asynchronous operation /// The task result contains the customer address list model /// Task PrepareCustomerAddressListModelAsync(); /// /// Prepare the customer downloadable products model /// /// /// A task that represents the asynchronous operation /// The task result contains the customer downloadable products model /// Task PrepareCustomerDownloadableProductsModelAsync(); /// /// Prepare the user agreement model /// /// Order item /// Product /// /// A task that represents the asynchronous operation /// The task result contains the user agreement model /// Task PrepareUserAgreementModelAsync(OrderItem orderItem, Product product); /// /// Prepare the change password model /// /// Customer /// /// A task that represents the asynchronous operation /// The task result contains the change password model /// Task PrepareChangePasswordModelAsync(Customer customer); /// /// Prepare the customer avatar model /// /// Customer avatar model /// /// A task that represents the asynchronous operation /// The task result contains the customer avatar model /// Task PrepareCustomerAvatarModelAsync(CustomerAvatarModel model); /// /// Prepare the GDPR tools model /// /// /// A task that represents the asynchronous operation /// The task result contains the gDPR tools model /// Task PrepareGdprToolsModelAsync(); /// /// Prepare the check gift card balance model /// /// /// A task that represents the asynchronous operation /// The task result contains the check gift card balance model /// Task PrepareCheckGiftCardBalanceModelAsync(); /// /// Prepare the multi-factor authentication model /// /// Multi-factor authentication model /// /// A task that represents the asynchronous operation /// The task result contains the multi-factor authentication model /// Task PrepareMultiFactorAuthenticationModelAsync(MultiFactorAuthenticationModel model); /// /// Prepare the multi-factor provider model /// /// Multi-factor provider model /// Multi-factor provider system name /// Is login page /// /// A task that represents the asynchronous operation /// The task result contains the multi-factor authentication model /// Task PrepareMultiFactorAuthenticationProviderModelAsync(MultiFactorAuthenticationProviderModel providerModel, string sysName, bool isLogin = false); /// /// Prepare the custom customer attribute models /// /// Customer /// Overridden customer attributes in XML format; pass null to use CustomCustomerAttributes of customer /// /// A task that represents the asynchronous operation /// The task result contains the list of the customer attribute model /// Task> PrepareCustomCustomerAttributesAsync(Customer customer, string overrideAttributesXml = ""); }