Пример #1
0
 public void TrySendBrandEmail(
     string recipientName,
     string recipientEmail,
     Guid brandId,
     MessageType messageType,
     IBrandMessageTemplateModel model,
     string languageCode = null)
 {
     TrySendBrandMessage(
         recipientName,
         recipientEmail,
         languageCode,
         brandId,
         messageType,
         MessageDeliveryMethod.Email,
         model);
 }
Пример #2
0
        private void TrySendBrandMessage(
            string recipientName,
            string recipientContact,
            string languageCode,
            Guid brandId,
            MessageType messageType,
            MessageDeliveryMethod messageDeliveryMethod,
            IBrandMessageTemplateModel model)
        {
            var brand = _repository.Brands.Single(x => x.Id == brandId);

            var messageTemplate = _repository.MessageTemplates.SingleOrDefault(x =>
                                                                               x.BrandId == brandId &&
                                                                               x.LanguageCode == (languageCode ?? brand.DefaultLanguageCode) &&
                                                                               x.MessageType == messageType &&
                                                                               x.MessageDeliveryMethod == messageDeliveryMethod &&
                                                                               x.Status == Status.Active);

            if (messageTemplate == null)
            {
                return;
            }

            model.BrandName     = brand.Name;
            model.RecipientName = recipientName;

            var parsedMessage = ParseTemplate(messageTemplate.MessageContent, model);

            if (messageDeliveryMethod == MessageDeliveryMethod.Email)
            {
                SendEmail(
                    senderEmail: brand.Email,
                    senderName: brand.Name,
                    recipientEmail: recipientContact,
                    recipientName: recipientName,
                    subject: ParseTemplate(messageTemplate.Subject, model),
                    body: parsedMessage);
            }
            else
            {
                SendSms(brand.SmsNumber, recipientContact, parsedMessage);
            }
        }