Beispiel #1
0
        private IServizio creaAggiungiAvviaServizio(Type type)
        {
            IServizio srv = _servizioFactory.creaServizio(type);
            string    key = ServizioFactory.calcFullName(type);

            _serviziAvviati.Add(key, srv);
            srv.start();
            return(srv);
        }
Beispiel #2
0
        public void avviaFermaTest2()
        {
            LumenApplication.Instance.avvia();

            IServizio srv = LumenApplication.Instance.creaServizio <IMasterizzaSrv>();

            srv.start();
            Assert.IsTrue(srv.isRunning);
            srv.Dispose();

            LumenApplication.Instance.ferma();
        }
Beispiel #3
0
        public IServizio creaServizio(Type tipo)
        {
            // Istanzio
            LumenApplication app = LumenApplication.Instance;

            // calcolo il nome completo della interfaccia che mi fa da chiave per la mappa.
            string key = calcFullName(tipo);

            if (app.configurazione.nomiServizi.Keys.Contains(key) == false)
            {
                throw new NotSupportedException("servizio " + key + " non definito nella configurazione");
            }

            /** Puo essere separato da virgola */
            string [] pezzi        = app.configurazione.nomiServizi [key].Split(',');
            string    nomeImpl     = pezzi[0];
            string    assemblyName = (pezzi.Length > 1 ? pezzi[1] : null);

            Object oo;

            try {
                if (assemblyName != null)
                {
                    ObjectHandle oh = (ObjectHandle)Activator.CreateInstance(AppDomain.CurrentDomain, assemblyName, nomeImpl);
                    oo = oh.Unwrap();
                }
                else
                {
                    oo = Activator.CreateInstance(Type.GetType(nomeImpl));
                }
            } catch (Exception ee) {
                System.Console.Out.WriteLine("Impossibile creare impl del servizio " + nomeImpl);
                throw ee;
            }

            IServizio servizio = (IServizio)oo;

            // IServizio servizio = (IServizio)Activator.CreateInstance( assemblyName, nomeImpl );

            // Sottoscrivo questo servizio come asoltatore del bus di eventi
            LumenApplication.Instance.aggiungiAscoltatoreServizioBus(servizio);

            return(servizio);
        }
Beispiel #4
0
        public void avviaFermaTest()
        {
            LumenApplication.Instance.avvia();

            Assert.IsTrue(LumenApplication.Instance.stato.giornataLavorativa.Equals(DateTime.Today));

            IServizio srv = LumenApplication.Instance.getServizioAvviato <IVolumeCambiatoSrv>();

            Assert.IsTrue(srv.isRunning);

            srv.stop();
            Assert.IsFalse(srv.isRunning);

            srv.start();
            Assert.IsTrue(srv.isRunning);

            LumenApplication.Instance.ferma();
            Assert.IsFalse(srv.isRunning);
        }
Beispiel #5
0
        public void aggiungiAscoltatoreServizioBus(IServizio obj)
        {
            IObservable <Messaggio> observable = _bus.Observe <Messaggio>();

            observable.Subscribe(obj);
        }