/// <summary> /// Sends an ask product question message. /// </summary> /// <param name="factory">Message factory.</param> /// <param name="customer">Customer.</param> /// <param name="product">Product.</param> /// <param name="senderEmail">Sender email address.</param> /// <param name="senderName">Sender name.</param> /// <param name="senderPhone">Sender phone number.</param> /// <param name="question">Question text.</param> /// <param name="attributeInfo">Attribute informations.</param> /// <param name="productUrl">Product URL.</param> /// <param name="isQuoteRequest">A value indicating whether the message is a quote request.</param> /// <param name="languageId">Language identifier.</param> /// <returns>Create message result.</returns> public static async Task <CreateMessageResult> SendProductQuestionMessageAsync( this IMessageFactory factory, Customer customer, Product product, string senderEmail, string senderName, string senderPhone, string question, string attributeInfo, string productUrl, bool isQuoteRequest, int languageId = 0) { Guard.NotNull(customer, nameof(customer)); Guard.NotNull(product, nameof(product)); var model = new NamedModelPart("Message") { ["ProductUrl"] = productUrl.NullEmpty(), ["IsQuoteRequest"] = isQuoteRequest, ["ProductAttributes"] = attributeInfo.NullEmpty(), ["Message"] = question.NullEmpty(), ["SenderEmail"] = senderEmail.NullEmpty(), ["SenderName"] = senderName.NullEmpty(), ["SenderPhone"] = senderPhone.NullEmpty() }; return(await factory.CreateMessageAsync( MessageContext.Create(MessageTemplateNames.ProductQuestion, languageId, customer: customer), true, product, model)); }
/// <summary> /// Sends an "email a friend" message. /// </summary> /// <param name="factory">Message factory.</param> /// <param name="customer">Customer.</param> /// <param name="product">Product.</param> /// <param name="fromEmail">Sender email address.</param> /// <param name="toEmail">Recipient email address.</param> /// <param name="personalMessage">Message text.</param> /// <param name="languageId">Language identifier.</param> /// <returns>Create message result.</returns> public static async Task <CreateMessageResult> SendShareProductMessageAsync( this IMessageFactory factory, Customer customer, Product product, string fromEmail, string toEmail, string personalMessage, int languageId = 0) { Guard.NotNull(customer, nameof(customer)); Guard.NotNull(product, nameof(product)); var model = new NamedModelPart("Message") { ["Body"] = personalMessage.NullEmpty(), ["From"] = fromEmail.NullEmpty(), ["To"] = toEmail.NullEmpty() }; return(await factory.CreateMessageAsync( MessageContext.Create(MessageTemplateNames.ShareProduct, languageId, customer: customer), true, product, model)); }
/// <summary> /// Sends a "new VAT sumitted" notification to a store owner /// </summary> public static CreateMessageResult SendNewVatSubmittedStoreOwnerNotification(this IMessageFactory factory, Customer customer, string vatName, string vatAddress, int languageId = 0) { Guard.NotNull(customer, nameof(customer)); var model = new NamedModelPart("VatValidationResult") { ["Name"] = vatName, ["Address"] = vatAddress }; return(factory.CreateMessage(MessageContext.Create(MessageTemplateNames.NewVatSubmittedStoreOwner, languageId, customer: customer), true, model)); }
/// <summary> /// Sends wishlist "email a friend" message /// </summary> public static CreateMessageResult SendShareWishlistMessage(this IMessageFactory factory, Customer customer, string fromEmail, string toEmail, string personalMessage, int languageId = 0) { Guard.NotNull(customer, nameof(customer)); var model = new NamedModelPart("Wishlist") { ["PersonalMessage"] = personalMessage, ["From"] = fromEmail, ["To"] = toEmail }; return(factory.CreateMessage(MessageContext.Create(MessageTemplateNames.ShareWishlist, languageId, customer: customer), true, model)); }
public static CreateMessageResult SendProductQuestionMessage(this IMessageFactory factory, Customer customer, Product product, string senderEmail, string senderName, string senderPhone, string question, int languageId = 0) { Guard.NotNull(customer, nameof(customer)); Guard.NotNull(product, nameof(product)); var model = new NamedModelPart("Message") { ["Message"] = question.NullEmpty(), ["SenderEmail"] = senderEmail.NullEmpty(), ["SenderName"] = senderName.NullEmpty(), ["SenderPhone"] = senderPhone.NullEmpty() }; return(factory.CreateMessage(MessageContext.Create(MessageTemplateNames.ProductQuestion, languageId, customer: customer), true, product, model)); }