コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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));
        }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
        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));
        }