/// <summary> /// Send SMS notification by message template /// </summary> /// <param name="messageTemplate">Message template</param> /// <param name="tokens">Tokens</param> private void SendSmsNotification(MessageTemplate messageTemplate, IEnumerable <Token> tokens) { //get plugin settings var storeId = (int?)tokens.FirstOrDefault(token => token.Key == "Store.Id")?.Value; var sendinBlueSettings = _settingService.LoadSetting <SendinBlueSettings>(storeId ?? 0); //ensure SMS notifications enabled if (!sendinBlueSettings.UseSmsNotifications) { return; } //whether to send SMS by the passed message template var sendSmsForThisMessageTemplate = _genericAttributeService .GetAttribute <bool>(messageTemplate, SendinBlueDefaults.UseSmsAttribute); if (!sendSmsForThisMessageTemplate) { return; } //get text with replaced tokens var text = _genericAttributeService.GetAttribute <string>(messageTemplate, SendinBlueDefaults.SmsTextAttribute); if (!string.IsNullOrEmpty(text)) { text = _tokenizer.Replace(text, tokens, false); } //get phone number send to var phoneNumberTo = string.Empty; var phoneType = _genericAttributeService.GetAttribute <int>(messageTemplate, SendinBlueDefaults.PhoneTypeAttribute); switch (phoneType) { case 0: //merchant phone phoneNumberTo = sendinBlueSettings.StoreOwnerPhoneNumber; break; case 1: //customer phone phoneNumberTo = tokens.FirstOrDefault(token => token.Key == "Customer.PhoneNumber")?.Value?.ToString(); break; case 2: //order billing address phone phoneNumberTo = tokens.FirstOrDefault(token => token.Key == "Order.BillingPhoneNumber")?.Value?.ToString(); break; } //try to send SMS _sendinBlueEmailManager.SendSMS(phoneNumberTo, sendinBlueSettings.SmsSenderName, text); }