private IServizio creaAggiungiAvviaServizio(Type type) { IServizio srv = _servizioFactory.creaServizio(type); string key = ServizioFactory.calcFullName(type); _serviziAvviati.Add(key, srv); srv.start(); return(srv); }
public void avviaFermaTest2() { LumenApplication.Instance.avvia(); IServizio srv = LumenApplication.Instance.creaServizio <IMasterizzaSrv>(); srv.start(); Assert.IsTrue(srv.isRunning); srv.Dispose(); LumenApplication.Instance.ferma(); }
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); }
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); }
public void aggiungiAscoltatoreServizioBus(IServizio obj) { IObservable <Messaggio> observable = _bus.Observe <Messaggio>(); observable.Subscribe(obj); }