Beispiel #1
0
 public void SavePurchaseMessages(EmailPurchaseToken token, bool send)
 {
     try
     {
         SavePurchaseAuthor(token, send);
         SavePurchaseLearner(token, send);
     }
     catch (Exception ex)
     {
         Logger.Error("save email message", null, ex, CommonEnums.LoggerObjectTypes.Email);
     }
 }
Beispiel #2
0
        private void SavePurchaseAuthor(EmailPurchaseToken token, bool send)
        {
            try
            {
                var html = token.PaymentMethod == BillingEnums.ePaymentMethods.Charge_Free && token.Coupon == null?GetTemplateHtml(EmailEnums.eTemplateKinds.PURCHASE_AUTHOR_FREE) : GetTemplateHtml(EmailEnums.eTemplateKinds.PURCHASE_AUTHOR);

                var authorMessage = new EmailMessageDTO
                {
                    Subject       = String.Format(PURCHASE_AUTHOR_SUBJECT, token.Item.type.ToString().ToLower())
                    , MessageFrom = FROM
                    , UserId      = token.Seller.UserId
                    , ToEmail     = token.Seller.Email
                    , ToName      = token.Seller.FullName
                    , Status      = EmailEnums.eSendInterfaceStatus.Waiting
                    , AddOn       = DateTime.Now
                    , MessageBody = html.Replace(EmailEnums.eTemplateFields.COURSE_AUTHOR.ToString().Field2Template(), token.Seller.FullName)
                                    .Replace(EmailEnums.eTemplateFields.COURSE_NAME.ToString().Field2Template(), token.Item.name)
                                    .Replace(EmailEnums.eTemplateFields.ITEM_TYPE_NAME.ToString().Field2Template(), token.Item.type.ToString().ToLower())
                                    .Replace(EmailEnums.eTemplateFields.FULL_NAME.ToString().Field2Template(), token.Buyer.FullName)
                                    .Replace(EmailEnums.eTemplateFields.PURCHASE_DATE.ToString().Field2Template(), token.SentDate.ToShortDateString() + " " + token.SentDate.ToShortTimeString())
                };

                long emailId;
                SaveMessage(authorMessage, out emailId);

                if (emailId < 0 || !send)
                {
                    return;
                }

                string error;
                _amazonEmailWrapper.SendEmail(emailId, out error);
            }
            catch (Exception ex)
            {
                Logger.Error("save purchase author email message", null, ex, CommonEnums.LoggerObjectTypes.Email);
            }
        }
Beispiel #3
0
        private void SavePurchaseLearner(EmailPurchaseToken token, bool send)
        {
            try
            {
                string html;
                string agreementDescription;

                var    couponName            = token.Coupon != null ? "Coupon discount" : string.Empty;
                string paymentInstrumentDesc = null;

                if (token.PaymentMethod == BillingEnums.ePaymentMethods.Charge_Free)
                {
                    html = GetTemplateHtml(token.Coupon != null ? EmailEnums.eTemplateKinds.PURCHASE_LEARNER_WITH_FREE_COUPON : EmailEnums.eTemplateKinds.PURCHASE_LEARNER_FREE);
                    agreementDescription = token.Coupon != null ? (token.PriceLineToken != null ? token.PriceLineToken.PriceLineToken2PurchaseEmailPaymentMethod() : "") : "Free Course";
                }
                else
                {
                    html = GetTemplateHtml(token.Coupon != null ? EmailEnums.eTemplateKinds.PURCHASE_LEARNER_WITH_COUPON : EmailEnums.eTemplateKinds.PURCHASE_LEARNER);
                    agreementDescription  = token.PriceLineToken.PriceLineToken2PurchaseEmailPaymentMethod();
                    paymentInstrumentDesc = String.Format("{0} {1}", token.PaymentMethod == BillingEnums.ePaymentMethods.Paypal ? "Paypal account" : "credit card", token.PaymentTerm == BillingEnums.ePaymentTerms.EVERY_30 ? "every month" : string.Empty);
                }

                var learnerMessage = new EmailMessageDTO
                {
                    Subject       = PURCHASE_LEARNER_SUBJECT
                    , MessageFrom = FROM
                    , UserId      = token.Buyer.UserId
                    , ToEmail     = token.Buyer.Email
                    , ToName      = token.Buyer.FullName
                    , Status      = EmailEnums.eSendInterfaceStatus.Waiting
                    , AddOn       = token.SentDate
                    , MessageBody = html.Replace(EmailEnums.eTemplateFields.FULL_NAME.ToString().Field2Template(), token.Buyer.FullName)
                                    .Replace(EmailEnums.eTemplateFields.COURSE_AUTHOR.ToString().Field2Template(), token.Seller.FullName)
                                    .Replace(EmailEnums.eTemplateFields.THUMB_URL.ToString().Field2Template(), token.Item.thumbUrl)
                                    .Replace(EmailEnums.eTemplateFields.ITEM_TYPE_NAME.ToString().Field2Template(), token.Item.type.ToString().ToLower())
                                    .Replace(EmailEnums.eTemplateFields.ISO.ToString().Field2Template(), token.PriceLineToken != null ? token.PriceLineToken.Currency.ISO : string.Empty)
                                    .Replace(EmailEnums.eTemplateFields.CURRENCY_SYMBOL.ToString().Field2Template(), token.PriceLineToken != null ? token.PriceLineToken.Currency.Symbol : string.Empty)
                                    .Replace(EmailEnums.eTemplateFields.AGREEMENT_DESC.ToString().Field2Template(), agreementDescription)
                                    .Replace(EmailEnums.eTemplateFields.COUPON_NAME.ToString().Field2Template(), couponName)
                                    .Replace(EmailEnums.eTemplateFields.PAYMENT_INSTRUMENT_DESC.ToString().Field2Template(), paymentInstrumentDesc)
                                    .Replace(EmailEnums.eTemplateFields.PRICE.ToString().Field2Template(), token.Price != null ? token.Price.FormatPrice2Str(2) : string.Empty)
                                    .Replace(EmailEnums.eTemplateFields.DISCOUNT.ToString().Field2Template(), token.Discount != null ? token.Discount.FormatPrice2Str(2) : string.Empty)
                                    .Replace(EmailEnums.eTemplateFields.TOTAL_PRICE.ToString().Field2Template(), token.TotalAmount != null ? token.TotalAmount.FormatPrice2Str(2) : string.Empty)
                                    .Replace(EmailEnums.eTemplateFields.ITEM_PAGE_URL.ToString().Field2Template(), token.Item.pageUrl)
                                    .Replace(EmailEnums.eTemplateFields.COURSE_NAME.ToString().Field2Template(), token.Item.name)     //"<a style=\"" + NAME_HTML_STYLE_UNDERLINE + "\"  href=\"" + token.Item.pageUrl + "\" >" + token.Item.name + "</a>"
                };

                long emailId;
                SaveMessage(learnerMessage, out emailId);

                if (emailId < 0 || !send)
                {
                    return;
                }
                string error;
                _amazonEmailWrapper.SendEmail(emailId, out error);
            }
            catch (Exception ex)
            {
                Logger.Error("save purchase learner email message", null, ex, CommonEnums.LoggerObjectTypes.Email);
            }
        }