Exemplo n.º 1
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;
        }
Exemplo n.º 2
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,
                                                ServiceHostConfigurationCollection wcfServicesConfiguration = 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, wcfServicesConfiguration);

            serVact.RunService(serviceController);
            return(serVact);
        }
Exemplo n.º 3
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,
                                                ServiceHostConfigurationCollection wcfServicesConfiguration = 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, wcfServicesConfiguration));
        }
Exemplo n.º 4
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)
 {
 }
Exemplo n.º 5
0
        public void ServiceConfigurationSettingsSerializationTest()
        {
            var expectedXml =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<serviceHosts xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
                "<host type=\"Test.TestServiceType\" name=\"Host\" factory=\"Test.TestFactory\" />" +
                "<host type=\"Test1.TestServiceType\" name=\"Host1\" factory=\"Test1.TestFactory\" />" +
                "</serviceHosts>";

            var config = new ServiceHostConfigurationCollection
            {
                new ServiceHostConfiguration
                {
                    Name            = "Host",
                    FactoryTypeName = "Test.TestFactory",
                    ServiceTypeName = "Test.TestServiceType"
                },
                new ServiceHostConfiguration
                {
                    Name            = "Host1",
                    FactoryTypeName = "Test1.TestFactory",
                    ServiceTypeName = "Test1.TestServiceType"
                }
            };


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

            MemoryStream ms = null;
            StreamWriter sr = null;

            try
            {
                ms = new MemoryStream();
                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();
            } finally {
                if (ms != null)
                {
                    ms.Dispose();
                }

                if (sr != null)
                {
                    sr.Dispose();
                }
            }

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

            try
            {
                ms = new MemoryStream(Encoding.Default.GetBytes(expectedXml));
                ms.Seek(0, SeekOrigin.Begin);
                expectedCollection = (ServiceHostConfigurationCollection)seri.Deserialize(ms);
                ms.Close();
            } finally {
                if (ms != null)
                {
                    ms.Dispose();
                }
            }

            Assert.IsNotNull(expectedCollection);
            Assert.AreEqual(expectedCollection[0].Name, "Host");
            Assert.AreEqual(expectedCollection[0].FactoryTypeName, "Test.TestFactory");
            Assert.AreEqual(expectedCollection[0].ServiceTypeName, "Test.TestServiceType");
            Assert.AreEqual(expectedCollection[1].Name, "Host1");
            Assert.AreEqual(expectedCollection[1].FactoryTypeName, "Test1.TestFactory");
            Assert.AreEqual(expectedCollection[1].ServiceTypeName, "Test1.TestServiceType");
        }
Exemplo n.º 6
0
 /// <summary>
 ///   Manager constructor
 /// </summary>
 /// <param name="configurationCollection">List of services to be managed by this manager</param>
 public WcfServicesManager(ServiceHostConfigurationCollection configurationCollection)
 {
     _log                   = LogManager.GetLogger(GetType());
     _serviceHosts          = new List <ServiceHostBase>();
     _servicesConfiguration = configurationCollection;
 }