public void Update(IPluginConfiguration configuration)
        {
            _microDataProcessor =
                new MicroDataProcessor(MicroDataSerializer.Deserialize(configuration.GetCustom("markupConfiguration")));

            Initialize();
        }
        public void Update(IPluginConfiguration configuration)
        {
            _microDataProcessor =
                new MicroDataProcessor(MicroDataSerializer.Deserialize(configuration.GetCustom("markupConfiguration")));

            Initialize();
        }
        public void Update(IPluginConfiguration configuration)
        {
            lock (_lockObj)
            {
                _fields.Clear();

                string fieldList = configuration.GetCustom("fields") ?? string.Empty;

                //Convert the string to  a list
                string[] fieldFilter = fieldList.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                _fields.AddRange(GetAllFields().Where(k => fieldFilter.Contains(k.Key) || fieldFilter.Length == 0).Select(f => f.Key));
            }
        }
        public void Update(IPluginConfiguration configuration)
        {
            lock (_lockObj)
            {
                _fields.Clear();

                string fieldList = configuration.GetCustom("fields") ?? string.Empty;

                //Convert the string to  a list
                string[] fieldFilter = fieldList.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                _fields.AddRange(GetAllFields().Where(k => fieldFilter.Contains(k.Key) || fieldFilter.Length==0).Select(f => f.Key));
            }
        }
        public void Initialize()
        {
            _push = new PushBroker();
            _push.OnDeviceSubscriptionExpired += push_OnDeviceSubscriptionExpired;
            _push.OnChannelException          += _push_OnChannelException;
            _push.OnNotificationFailed        += _push_OnNotificationFailed;
            _push.OnServiceException          += _push_OnServiceException;

            _enabledDevices = DeviceType.None;

            StringBuilder debug = new StringBuilder();

            if (_configuration != null)
            {
                if (!string.IsNullOrEmpty(_configuration.GetCustom("apnsCertificate")) &&
                    !string.IsNullOrEmpty(_configuration.GetString("apnsPassword")))
                {
                    var certificate = Telligent.Evolution.Mobile.PushNotifications.PropertyControls.CertificatePropertyControl.Deserialize(_configuration.GetCustom("apnsCertificate"));
                    if (certificate != null)
                    {
                        try
                        {
                            _push.RegisterAppleService(new ApplePushChannelSettings(_configuration.GetBool("apnsProduction"), certificate.Content, _configuration.GetString("apnsPassword"), false));
                            _enabledDevices |= DeviceType.IOS;
                            debug.Append("iOS notifications are configured and enabled.\n");
                        }
                        catch (Exception ex)
                        {
                            debug.Append("An exception occurred while attempting to configure iOS notifications:\n").Append(ex.ToString());
                        }
                    }
                    else
                    {
                        debug.Append("The certificate for iOS notifications is invalid. iOS notifications are not enabled.\n");
                    }
                }
                else
                {
                    debug.Append("Configuration for iOS notifications is incomplete. iOS notifications are not enabled.\n");
                }

                if (!string.IsNullOrEmpty(_configuration.GetString("gcmPackageName")) &&
                    !string.IsNullOrEmpty(_configuration.GetString("gcmSenderId")) &&
                    !string.IsNullOrEmpty(_configuration.GetString("gcmAuthorizationKey")))
                {
                    try
                    {
                        _push.RegisterGcmService(new GcmPushChannelSettings(_configuration.GetString("gcmSenderId"), _configuration.GetString("gcmAuthorizationKey"), _configuration.GetString("gcmPackageName")));
                        _enabledDevices |= DeviceType.Android;
                        debug.Append("Android notifications are configured and enabled.\n");
                    }
                    catch (Exception ex)
                    {
                        debug.Append("An exception occurred while attempting to enable Android notifications:\n").Append(ex.ToString());
                    }
                }
                else
                {
                    debug.Append("Configuration for Android notifications is incomplete. Android notifications are not enabled.\n");
                }

                if (_configuration.GetBool("enableLogging"))
                {
                    Telligent.Evolution.Extensibility.Api.Version1.PublicApi.Eventlogs.Write(debug.ToString(), new EventLogEntryWriteOptions {
                        Category = "Push Notifications", EventId = 1234, EventType = "Information"
                    });
                }
            }
        }