Esempio n. 1
0
        public void PluginConfigurationSettingsSerializationTest()
        {
            var expectedXml =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<plugins xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
                "<plugin name=\"Plugin\" type=\"Test.TestPluginType\" />" +
                "<plugin name=\"Plugin1\" type=\"Test1.TestPluginType\" />" +
                "</plugins>";

            var config = new PluginConfigurationCollection
            {
                new PluginConfiguration
                {
                    Name           = "Plugin",
                    PluginTypeName = "Test.TestPluginType"
                },
                new PluginConfiguration
                {
                    Name           = "Plugin1",
                    PluginTypeName = "Test1.TestPluginType"
                }
            };

            string serData;
            var    seri = new XmlSerializer(typeof(PluginConfigurationCollection));

            using (var ms = new MemoryStream())
            {
                using (var sr = new StreamWriter(ms))
                {
                    using (var xmlWriter = XmlWriter.Create(sr, new XmlWriterSettings {
                        Indent = false
                    }))
                    {
                        seri.Serialize(xmlWriter, config);
                        ms.Seek(0, SeekOrigin.Begin);
                        serData = Encoding.Default.GetString(ms.GetBuffer());
                        sr.Close();
                    }
                }
                ms.Close();
            }

            Assert.AreEqual(expectedXml, serData);
            PluginConfigurationCollection expectedCollection;

            using (var ms = new MemoryStream(Encoding.Default.GetBytes(expectedXml)))
            {
                ms.Seek(0, SeekOrigin.Begin);
                expectedCollection = (PluginConfigurationCollection)seri.Deserialize(ms);
                ms.Close();
            }

            Assert.IsNotNull(expectedCollection);
            Assert.AreEqual(expectedCollection[0].Name, "Plugin");
            Assert.AreEqual(expectedCollection[0].PluginTypeName, "Test.TestPluginType");
            Assert.AreEqual(expectedCollection[1].Name, "Plugin1");
            Assert.AreEqual(expectedCollection[1].PluginTypeName, "Test1.TestPluginType");
        }
Esempio n. 2
0
        /// <summary>
        ///   ServiceController constructor creates new instatnce of service for registration
        /// </summary>
        /// <param name="service">Instance of service</param>
        /// <param name="pluginsConfiguration">Instance of plugin configuration collections</param>
        /// <param name="wcfServicesConfiguration">WCF services configuration</param>
        protected ServiceControllerBase(IGaiaService service, PluginConfigurationCollection pluginsConfiguration,
                                        ServiceHostConfigurationCollection wcfServicesConfiguration)
        {
            Service         = service;
            PluginsManager  = new PluginsManager(pluginsConfiguration);
            ServicesManager = new WcfServicesManager(wcfServicesConfiguration);

            service.ServiceController = this;
        }
Esempio n. 3
0
        /// <summary>
        ///   Factory creates and run service
        /// </summary>
        /// <param name="serviceName">Service system name</param>
        /// <param name="displayName">Service display name</param>
        /// <param name="description">Service description</param>
        /// <param name="pluginsConfiguration"></param>
        /// <param name="wcfServicesConfiguration"></param>
        /// <returns></returns>
        public static ServiceFactory Create <T>(string serviceName, string displayName,
                                                string description = null, PluginConfigurationCollection pluginsConfiguration = null)
        {
            var serVact = new ServiceFactory
            {
                ServiceName = serviceName,
                DisplayName = displayName,
                Description = description,
                Service     = (IGaiaService)Activator.CreateInstance(typeof(T))
            };


            var serviceController = new ServiceController <IGaiaService>(serVact.Service, pluginsConfiguration);

            serVact.RunService(serviceController);
            return(serVact);
        }
Esempio n. 4
0
        /// <summary>
        ///   Factory creates and run service
        /// </summary>
        /// <param name="pluginsConfiguration"></param>
        /// <param name="wcfServicesConfiguration"></param>
        /// <returns></returns>
        public static ServiceFactory Create <T>(PluginConfigurationCollection pluginsConfiguration = null)
        {
            var serviceType = typeof(T);

            var serviceName = serviceType.Name;
            var displayName = serviceType.FullName;
            var description =
                $"{serviceName}{Environment.NewLine}{displayName}{Environment.NewLine}{serviceType.Assembly.Location}";

            var info = serviceType.GetCustomAttribute <ServiceInfoAttribute>();

            if (info != null)
            {
                serviceName = info.ServiceName;
                displayName = info.DisplayName;
                description = info.Description;
            }

            return(Create <T>(serviceName, displayName, description, pluginsConfiguration));
        }
Esempio n. 5
0
 /// <summary>
 ///   ServiceController constructor creates new instatnce of service for registration
 /// </summary>
 /// <param name="service">Instance of service</param>
 /// <param name="pluginsConfiguration">Instance of plugin configuration collections</param>
 /// <param name="wcfServicesConfiguration">WCF services configuration</param>
 public ServiceController(T service, PluginConfigurationCollection pluginsConfiguration,
                          ServiceHostConfigurationCollection wcfServicesConfiguration) : base(service, pluginsConfiguration,
                                                                                              wcfServicesConfiguration)
 {
 }
Esempio n. 6
0
 /// <summary>
 ///   Base constructor of plugin manager
 /// </summary>
 /// <param name="logger">Instance of logger</param>
 /// <param name="plugins">Plugins configuration collection</param>
 public PluginsManager(PluginConfigurationCollection plugins)
 {
     _logger = new Logger <PluginsManager>(new LoggerFactory());
     _pluginsConfiguration = plugins;
     _plugins = new List <IServicePlugin>();
 }
Esempio n. 7
0
 /// <summary>
 ///   Base constructor of plugin manager
 /// </summary>
 /// <param name="plugins">Plugins configuration collection</param>
 public PluginsManager(PluginConfigurationCollection plugins)
 {
     _log = LogManager.GetLogger(GetType());
     _pluginsConfiguration = plugins;
     _plugins = new List <IServicePlugin>();
 }
Esempio n. 8
0
 /// <summary>
 ///   ServiceController constructor creates new instatnce of service for registration
 /// </summary>
 /// <param name="service">Instance of service</param>
 /// <param name="pluginsConfiguration">Instance of plugin configuration collections</param>
 public ServiceController(T service, PluginConfigurationCollection pluginsConfiguration) : base(service, pluginsConfiguration)
 {
 }