/// <summary>
        /// Install plugin
        /// </summary>
        public override void Install()
        {
            //settings
            var settings = new ClickatellSettings()
            {
                Enabled = false,
            };
            _settingService.SaveSetting(settings);

            //locales
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.TestFailed", "Test message sending failed");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.TestSuccess", "Test message was sent");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Enabled", "Enabled");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Enabled.Hint", "Check to enable SMS provider");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.ApiId", "API ID");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.ApiId.Hint", "Clickatell API ID");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Password", "Password");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Password.Hint", "Clickatell password");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.PhoneNumber", "Phone number");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.PhoneNumber.Hint", "Your phone number");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Username", "Username");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.Username.Hint", "Clickatell username");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.TestMessage", "Message text");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.Fields.TestMessage.Hint", "Text of the test message");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.SendTest", "Send");
            this.AddOrUpdatePluginLocaleResource("Plugins.Sms.Clickatell.SendTest.Hint", "Send test message");

            base.Install();
        }
 public ClickatellSmsProvider(ClickatellSettings clickatellSettings,
     ILogger logger, ISettingService settingService)
 {
     this._clickatellSettings = clickatellSettings;
     this._logger = logger;
     this._settingService = settingService;
 }
 public SmsClickatellController(ClickatellSettings clickatellSettings,
     ISettingService settingService, ISmsService smsService,
     ILocalizationService localizationService)
 {
     this._clickatellSettings = clickatellSettings;
     this._settingService = settingService;
     this._smsService = smsService;
     this._localizationService = localizationService;
 }
 public SmsClickatellController(ClickatellSettings clickatellSettings,
     ISettingService settingService, IPluginFinder pluginFinder,
     ILocalizationService localizationService)
 {
     this._clickatellSettings = clickatellSettings;
     this._settingService = settingService;
     this._pluginFinder = pluginFinder;
     this._localizationService = localizationService;
 }
Example #5
0
 public ClickatellSmsProvider(ClickatellSettings clickatellSettings,
                              ILogger logger,
                              IOrderService orderService,
                              ISettingService settingService)
 {
     this._clickatellSettings = clickatellSettings;
     this._logger             = logger;
     this._orderService       = orderService;
     this._settingService     = settingService;
 }
Example #6
0
        /// <summary>
        /// Send SMS
        /// </summary>
        /// <param name="text">Text</param>
        /// <param name="orderId">Order id</param>
        /// <param name="settings">Clickatell settings</param>
        /// <returns>True if SMS was successfully sent; otherwise false</returns>
        public bool SendSms(string text, int orderId, ClickatellSettings settings = null)
        {
            var clickatellSettings = settings ?? _clickatellSettings;

            if (!clickatellSettings.Enabled)
            {
                return(false);
            }

            //change text
            var order = _orderService.GetOrderById(orderId);

            if (order != null)
            {
                text = string.Format("New order #{0} was placed for the total amount {1:0.00}", order.Id, order.OrderTotal);
            }

            using (var smsClient = new ClickatellSmsClient(new BasicHttpBinding(), new EndpointAddress("http://api.clickatell.com/soap/document_literal/webservice")))
            {
                //check credentials
                var authentication = smsClient.auth(int.Parse(clickatellSettings.ApiId), clickatellSettings.Username, clickatellSettings.Password);
                if (!authentication.ToUpperInvariant().StartsWith("OK"))
                {
                    _logger.Error(string.Format("Clickatell SMS error: {0}", authentication));
                    return(false);
                }

                //send SMS
                var sessionId = authentication.Substring(4);
                var result    = smsClient.sendmsg(sessionId, int.Parse(clickatellSettings.ApiId), clickatellSettings.Username, clickatellSettings.Password,
                                                  text, new [] { clickatellSettings.PhoneNumber }, string.Empty, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                  string.Empty, 0, string.Empty, string.Empty, string.Empty, 0).FirstOrDefault();

                if (result == null || !result.ToUpperInvariant().StartsWith("ID"))
                {
                    _logger.Error(string.Format("Clickatell SMS error: {0}", result));
                    return(false);
                }
            }

            //order note
            if (order != null)
            {
                order.OrderNotes.Add(new OrderNote()
                {
                    Note = "\"Order placed\" SMS alert (to store owner) has been sent",
                    DisplayToCustomer = false,
                    CreatedOnUtc      = DateTime.UtcNow
                });
                _orderService.UpdateOrder(order);
            }

            return(true);
        }
 public ClickatellSmsProvider(ClickatellSettings clickatellSettings,
                              ILogger logger,
                              IOrderService orderService,
                              ISettingService settingService,
                              IWebHelper webHelper,
                              ILocalizationService localizationService)
 {
     this._clickatellSettings  = clickatellSettings;
     this._logger              = logger;
     this._orderService        = orderService;
     this._settingService      = settingService;
     this._webHelper           = webHelper;
     this._localizationService = localizationService;
 }
Example #8
0
 public ClickatellSmsProvider(ClickatellSettings clickatellSettings,
                              ILogger logger)
 {
     this._clickatellSettings = clickatellSettings;
     this._logger             = logger;
 }
Example #9
0
 public ClickatellSmsProvider(ClickatellSettings clickatellSettings,
     ILogger logger)
 {
     this._clickatellSettings = clickatellSettings;
     this._logger = logger;
 }