Example #1
0
        public void ricercaTest()
        {
            ParamCercaFoto param = new ParamCercaFoto();

            param.giornataIniz = new DateTime(2000, 1, 1);
            param.giornataFine = new DateTime(2299, 12, 31);

            using (LumenEntities dbContext = new LumenEntities()) {
                Evento    ev = dbContext.Eventi.First();
                Fotografo op = dbContext.Fotografi.First();

                Fotografia f = dbContext.Fotografie.First();
                f.evento        = ev;
                f.fotografo     = op;
                f.faseDelGiorno = (short)FaseDelGiorno.Mattino;
                f.didascalia    = "W IL POLLO ARROSTO";

                dbContext.SaveChanges();


                param.numeriFotogrammi = "3, 5, 7," + f.numero;
                param.eventi           = new Evento[] { ev };
                param.fotografi        = new Fotografo [] { op };
                param.fasiDelGiorno    = new FaseDelGiorno [] { FaseDelGiorno.Mattino, FaseDelGiorno.Sera };
                param.didascalia       = "%POLLO%";            // Ricerca like


                IList <Fotografia> ris = _impl.cerca(param);
                Assert.IsTrue(ris.Count > 0);
                Console.WriteLine(ris.Count);
            }
        }
        // ------------------


        void associareFacciaFotografo()
        {
            // La foto la prendo da quella selezionata
            if (targetMode != TargetMode.Singola)
            {
                throw new InvalidOperationException("Operazione solo su singola foto");
            }

            if (selettoreFotografoViewModelFaccia.countElementiSelezionati != 1)
            {
                throw new InvalidOperationException("Non è stato selezionato un Fotografo");
            }

            Fotografia fotografia = getListaFotoTarget().Single();

            Fotografo fotografo = selettoreFotografoViewModelFaccia.fotografoSelezionato;

            AiutanteFoto.setImmagineFotografo(fotografia, fotografo);

            string msg = string.Format("Impostata immagine per faccia fotografo {0}\nCon la foto numero {1}", fotografo.cognomeNome, fotografia.numero);

            _giornale.Info(msg);

            // Spengo la selezione per la prossima volta
            selettoreFotografoViewModelFaccia.fotografiCW.deselezionaTutto();

            dialogProvider.ShowMessage(msg, "Operazione riuscita");
        }
Example #3
0
        public List <FotografiaDto> getListaFotografieDelFotografo(RicercaFotoParam ricercaFotoParam)
        {
            List <FotografiaDto> listaDto = new List <FotografiaDto>();

            _giornale.Debug("param = " + ricercaFotoParam.ToString());

            using (new UnitOfWorkScope()) {
                // uso apposito servizio di ricerca foto
                IRicercatoreSrv ricercaSrv = LumenApplication.Instance.getServizioAvviato <IRicercatoreSrv>();

                // preparo parametri
                ParamCercaFoto param = new ParamCercaFoto();

                Fotografo fotografo = null;
                if (ricercaFotoParam.fotografoId != null)
                {
                    fotografo       = UnitOfWorkScope.currentDbContext.Fotografi.Single(f => f.id == ricercaFotoParam.fotografoId);
                    param.fotografi = new Fotografo[] { fotografo };
                }
                param.evitareJoinEvento = true;
                param.paginazione       = new Paginazione {
                    skip = ricercaFotoParam.skip, take = ricercaFotoParam.take
                };
                param.idratareImmagini = false;

                // Se viene indicata una giornata nei parametri, prendo quella.
                // Altrimenti imposto fisso la giornata corrente
                DateTime giornata = ricercaFotoParam.giorno > DateTime.MinValue ? ricercaFotoParam.giorno : StartupUtil.calcolaGiornataLavorativa();
                param.giornataIniz = giornata;
                param.giornataFine = giornata;

                // La fase del giorno è un parametro opzionale
                if (ricercaFotoParam.faseDelGiorno != null)
                {
                    FaseDelGiorno faseDelGiorno;
                    if (Enum.TryParse <FaseDelGiorno>(ricercaFotoParam.faseDelGiorno, out faseDelGiorno))
                    {
                        param.setFaseGiorno(faseDelGiorno, true);
                    }
                }

                param.ordinamento = Ordinamento.Asc;

                _giornale.Debug("ricerca con skip = " + ricercaFotoParam.skip);
                var fotografie = ricercaSrv.cerca(param);
                foreach (var foto in fotografie)
                {
                    FotografiaDto dto = new FotografiaDto();
                    dto.etichetta = foto.etichetta;
                    dto.id        = foto.id;

                    // da vedere se conviene
                    // dto.imgProvino = ....

                    listaDto.Add(dto);
                }
            }

            return(listaDto);
        }
Example #4
0
        public List <Fotografo> ListarFotografos()
        {
            List <Fotografo> fotografos = null;
            string           query      = "usp_ListarFotografos";

            SqlCommand cmd = new SqlCommand(query, conexion);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            conexion.Open();
            SqlDataReader rd = cmd.ExecuteReader();

            if (rd.HasRows)
            {
                fotografos = new List <Fotografo>();
                while (rd.Read())
                {
                    Fotografo fotografo = new Fotografo();
                    fotografo.idFotografo   = rd["idFotografo"].ToString();
                    fotografo.nomFotografo  = rd["nomFotografo"].ToString();
                    fotografo.telfFotografo = rd["telfFotografo"].ToString();
                    fotografo.dirFotografo  = rd["dirFotografo"].ToString();
                    fotografos.Add(fotografo);
                }
            }

            conexion.Close();

            return(fotografos);
        }
Example #5
0
        public string RegistrarFotografos(Fotografo fotografo)
        {
            string mensaje = "";

            mensaje = fotografoNegocios.RegistrarFotografos(fotografo);
            return(mensaje);
        }
Example #6
0
        public Fotografo ObtenerFotografos(string id)
        {
            var       lista     = fotografoNegocios.ListarFotografos();
            Fotografo fotografo = lista.FirstOrDefault(x => x.idFotografo == id);

            return(fotografo);
        }
Example #7
0
        public string ActualizarFotografos(Fotografo fotografo)
        {
            string mensaje = "";

            mensaje = fotografoNegocios.ActualizarFotografos(fotografo);
            return(mensaje);
        }
Example #8
0
        public static void EX2()
        {
            CenaDoCrime cenaDoCrime = new CenaDoCrime();

            Policial policial = new Policial();

            cenaDoCrime.AddEspectador(policial);

            cenaDoCrime.NotificarEspectadores("Homem levando tiro");

            Cachorro cachorro = new Cachorro();
            Curioso  curioso  = new Curioso();

            cenaDoCrime.AddEspectador(cachorro);
            cenaDoCrime.AddEspectador(curioso);

            cenaDoCrime.NotificarEspectadores("Homem gritando");

            Fotografo fotografo = new Fotografo();

            cenaDoCrime.AddEspectador(fotografo);

            cenaDoCrime.NotificarEspectadores("Homem sangrando no chão");

            cenaDoCrime.RemoveEspectador(curioso);
            cenaDoCrime.RemoveEspectador(cachorro);

            cenaDoCrime.NotificarEspectadores("Ambulância chegando");
        }
Example #9
0
        public void Init()
        {
            LumenApplication             app        = LumenApplication.Instance;
            IObservable <ScaricoFotoMsg> observable = app.bus.Observe <ScaricoFotoMsg>();

            observable.Subscribe(this);

            this._scaricatoreImpl = new ScaricatoreFotoSrvImpl();
            _scaricatoreImpl.start();

            // -------
            using (LumenEntities dbContext = new LumenEntities())
            {
                InfoFissa i = dbContext.InfosFisse.Single <InfoFissa>(f => f.id == "K");

                // Se hai fatto bene la configurazione, il fotografo artista deve sempre esistere
                _artista = dbContext.Fotografi.Single(f => f.id == Configurazione.ID_FOTOGRAFO_DEFAULT);
            }

            String doveSono = Assembly.GetExecutingAssembly().Location;

            string appPath  = Path.GetDirectoryName(doveSono);
            string cartella = Path.Combine(appPath, "images");
            string nomeSrc  = Directory.GetFiles(cartella, "barCode.jpg").ElementAt(0);

            FileInfo fiInfo = new FileInfo(nomeSrc);

            ParamScarica param = new ParamScarica();

            param.nomeFileSingolo      = nomeSrc;
            param.cartellaSorgente     = null;
            param.eliminaFilesSorgenti = false;

            param.flashCardConfig = new Config.FlashCardConfig(_artista);
            _scaricatoreImpl.scarica(param);

            while (!_puoiTogliereLaFlashCard)
            {
                Thread.Sleep(10000);
            }

            Console.Write("ok puoi togliere la flash card. Attendere elaborazione in corso ...");

            while (!_elaborazioneTerminata)
            {
                Thread.Sleep(10000);
            }

            Console.WriteLine("Ecco finito");


            this._barCodeimpl = new BarCodeSrvImpl();

            IRicercatoreSrv srv2 = app.creaServizio <IRicercatoreSrv>();
        }
Example #10
0
        private void creaFotografoMancante(string id)
        {
            Fotografo mancante = new Fotografo();

            mancante.id          = id;
            mancante.cognomeNome = id;
            mancante.iniziali    = Convert.ToString(++contaFotografiAggiunti);
            mancante.umano       = true;
            mancante.attivo      = true;
            mancante.note        = "Generato automaticamente da DbRebuilder";
            UnitOfWorkScope.currentDbContext.Fotografi.Add(mancante);
        }
Example #11
0
 public static string nomeFileImgFotografo(Fotografo f, bool seNonEsisteNull)
 {
     if (f == null || f.id == null)
     {
         return(null);
     }
     else
     {
         var nomeFile = Path.Combine(nomeCartellaImmaginiFotografi, f.id + ".jpg");
         return(seNonEsisteNull && !File.Exists(nomeFile) ? null : nomeFile);
     }
 }
Example #12
0
        private byte [] getImmagineFotografo(Fotografo f)
        {
            string nomeFile = AiutanteFoto.nomeFileImgFotografo(f);

            if (nomeFile != null && File.Exists(nomeFile))
            {
                IGestoreImmagineSrv g = LumenApplication.Instance.getServizioAvviato <IGestoreImmagineSrv>();
                return(g.load(nomeFile).getBytes());
            }
            else
            {
                return(null);
            }
        }
Example #13
0
        public void Init()
        {
            LumenApplication             app        = LumenApplication.Instance;
            IObservable <ScaricoFotoMsg> observable = app.bus.Observe <ScaricoFotoMsg>();

            observable.Subscribe(this);

            _impl = new ScaricatoreFotoSrvImpl();
            _impl.start();



            // -------
            using (LumenEntities dbContext = new LumenEntities()) {
                InfoFissa i = dbContext.InfosFisse.Single <InfoFissa>(f => f.id == "K");

                _mario = Utilita.ottieniFotografoMario(dbContext);

                // Se hai fatto bene la configurazione, il fotografo artista deve sempre esistere
                _artista = dbContext.Fotografi.Single(f => f.id == Configurazione.ID_FOTOGRAFO_DEFAULT);

                // cerco l'evento con la descrizione
                _ballo = (from e in dbContext.Eventi
                          where e.descrizione == "BALLO"
                          select e).FirstOrDefault();

                if (_ballo == null)
                {
                    _ballo = new Evento();

                    _ballo.descrizione = "BALLO";
                    _ballo.id          = Guid.NewGuid();
                    dbContext.Eventi.Add(_ballo);
                }

                _briscola = (from e in dbContext.Eventi
                             where e.descrizione == "BRISCOLA"
                             select e).FirstOrDefault();

                if (_briscola == null)
                {
                    _briscola             = new Evento();
                    _briscola.id          = Guid.NewGuid();
                    _briscola.descrizione = "BRISCOLA";
                    dbContext.Eventi.Add(_briscola);
                }

                dbContext.SaveChanges();
            }
        }
Example #14
0
        public void ActualizarFotografos(Fotografo fotografo)
        {
            conexion.Open();
            string query = "usp_ActualizarFotografo";

            SqlCommand cmd = new SqlCommand(query, conexion);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@idFotografo", fotografo.idFotografo);
            cmd.Parameters.AddWithValue("@telfFotografo", fotografo.telfFotografo);
            cmd.Parameters.AddWithValue("@dirFotografo", fotografo.dirFotografo);
            cmd.ExecuteNonQuery();
            conexion.Close();
        }
Example #15
0
        public string RegistrarFotografos(Fotografo fotografo)
        {
            string mensaje = "";

            try
            {
                mensaje = "Fotografo registrado";
                fotografoDatos.RegistrarFotografos(fotografo);
            }
            catch (Exception e)
            {
                mensaje = e.Message;
            }
            return(mensaje);
        }
Example #16
0
        public string ActualizarFotografos(Fotografo fotografo)
        {
            string mensaje = "";

            try
            {
                mensaje = "Fotografo actualizado";
                fotografoDatos.ActualizarFotografos(fotografo);
            }
            catch (Exception e)
            {
                mensaje = e.Message;
            }
            return(mensaje);
        }
        /// <summary>
        ///  Se nella chiavetta ci sono i
        ///
        /// </summary>
        void caricaDatiDaChiavetta()
        {
            ParamScarica param = scaricatoreFotoSrv.ultimaChiavettaInserita;

            if (param == null || param.flashCardConfig == null)
            {
                return;
            }

            // Cartella
            if (param.cartellaSorgente != null)
            {
                selettoreCartellaViewModel.cartellaSelezionata = param.cartellaSorgente;
            }

            try {
                // Attenzione:
                // Per fare in modo che i componenti grafici si aggiornino sull'elemento selezionato,
                // devo trovare il giusto elemento nella collezione di valori istanziati.
                // Se invece rileggo dal db, avrò l'effetto che il SelectedItem della ListBox non si aggiorna.

                // Fotografo
                if (param.flashCardConfig.idFotografo != null)
                {
                    // Il fotografo sulla flashcard potrebbe non esistere
                    Fotografo prec = selettoreFotografoViewModel.fotografi.Where(fo => fo.id == param.flashCardConfig.idFotografo).SingleOrDefault();
                    if (prec != null)
                    {
                        /*
                         * purtroppo non funziona.
                         * Siccome la view non subisce il viewmodel, la ListBox non si posiziona
                         * correttamente (non è sincronizzata con l'elemento corrente)
                         *
                         * selettoreFotografoViewModel.fotografoSelezionato = prec;
                         */
                    }
                }


                // Evento
                if (param.flashCardConfig.idEvento != Guid.Empty)
                {
                    selettoreEventoViewModel.eventoSelezionato = selettoreEventoViewModel.eventi.Where(ev => ev.id == param.flashCardConfig.idEvento).SingleOrDefault();
                }
            } catch (Exception ee) {
                _giornale.Error("Non sono riuscito ad impostare i valori della FlashCardConfig", ee);
            }
        }
Example #18
0
        public static Fotografo ottieniFotografoMario2(LumenEntities dbContext)
        {
            Fotografo mario = (from f in dbContext.Fotografi
                               where f.id == idMario
                               select f).SingleOrDefault();

            if (mario == null)
            {
                mario             = new Fotografo();
                mario.id          = idMario;
                mario.iniziali    = "RM";
                mario.attivo      = true;
                mario.cognomeNome = "Rossi Mario";
                dbContext.Fotografi.Add(mario);
            }
            return(mario);
        }
Example #19
0
        private void creaAlcuniDatiDiDefault()
        {
            // Devo creare un fotografo pre-stabilito per assegnare le foto modificate con GIMP
            IEntityRepositorySrv <Fotografo> repo = LumenApplication.Instance.getServizioAvviato <IEntityRepositorySrv <Fotografo> >();
            Fotografo artista = repo.getById(Configurazione.ID_FOTOGRAFO_DEFAULT);

            if (artista == null)
            {
                artista             = new Fotografo();
                artista.id          = Configurazione.ID_FOTOGRAFO_DEFAULT;
                artista.umano       = true;
                artista.attivo      = true;
                artista.cognomeNome = artista.id;
                artista.iniziali    = "XY";
                artista.note        = "default operator";
                repo.addNew(artista);
                repo.saveChanges();
            }
        }
Example #20
0
        public void initTest()
        {
            System.Diagnostics.Trace.WriteLine("INIZIO");
            LumenApplication app = LumenApplication.Instance;

            app.avvia();

            ScaricatoreFotoImplTest scaricatore = new ScaricatoreFotoImplTest();

            scaricatore.Init();
            scaricatore.scaricaFileTest();

            giorni = Configurazione.infoFissa.numGiorniEliminaFoto;
            System.Diagnostics.Trace.WriteLine("GIORNI " + giorni);

            using (LumenEntities dbContext = new LumenEntities()) {
                _mario = Utilita.ottieniFotografoMario(dbContext);
            }
            _impl = new EliminaFotoVecchieSrvImpl();
            _impl.start();
        }
Example #21
0
        public void crudFotografo()
        {
            using (LumenEntities context = new LumenEntities()) {
                Fotografo ff = new Fotografo();

                ff.id          = "Barna " + DateTime.Now.ToString("HH-mm-ss");
                ff.cognomeNome = "Bernardini Luca";
                ff.iniziali    = "BL";

                context.Fotografi.Add(ff);

                using (var stream = new MemoryStream()) {
                    Resource2.Image01.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    ff.immagine = stream.ToArray();
                }

                int test = context.SaveChanges();

                Assert.IsTrue(test > 0);
            }
        }
Example #22
0
        public void crudFotografia()
        {
            using (LumenEntities context = new LumenEntities()) {
                Fotografo ff = context.Fotografi.First();
                Evento    ee = context.Eventi.FirstOrDefault();

                Fotografia foto = new Fotografia();
                foto.id = Guid.NewGuid();
                foto.dataOraAcquisizione = DateTime.Now;
                foto.fotografo           = ff;
                foto.evento     = ee;
                foto.didascalia = "TEST";
                foto.nomeFile   = "nontelodico.jpg";

                context.Fotografie.Add(foto);

                int test = context.SaveChanges();

                Assert.IsTrue(test > 0);
            }
        }
Example #23
0
        /// <summary>
        /// Imposta una immagine per il fotografo (con la sua faccia)
        /// </summary>
        /// <param name="nomeFileImmagine">path completo. Se nullo, elimino la foto attuale</param>
        /// <param name="fotografo">il fotografo da ritrarre</param>
        public static void setImmagineFotografo(string nomeFileImmagine, Fotografo fotografo)
        {
            string nomeFileDest = AiutanteFoto.nomeFileImgFotografo(fotografo);


            if (nomeFileImmagine != null)
            {
                DirectoryInfo dInfo = new DirectoryInfo(nomeFileDest).Parent;
                if (!dInfo.Exists)
                {
                    Directory.CreateDirectory(dInfo.FullName);
                }

                if (File.Exists(nomeFileDest))
                {
                    // Potrebbe avere il flag di readonly
                    // Elimino gli attributi solo lettura
                    File.SetAttributes(nomeFileDest, File.GetAttributes(nomeFileDest) & ~(FileAttributes.ReadOnly));
                }

                // copio con sovrascrittura
                File.Copy(nomeFileImmagine, nomeFileDest, true);

                // Potrebbe avere il flag di readonly
                // Elimino gli attributi solo lettura
                File.SetAttributes(nomeFileDest, File.GetAttributes(nomeFileDest) & ~(FileAttributes.ReadOnly) | FileAttributes.Archive);

                string msg = string.Format("Impostata immagine fotografo: {0} immagine: {1}", fotografo.cognomeNome, nomeFileImmagine);
                _giornale.Info(msg);
            }
            else
            {
                if (File.Exists(nomeFileDest))
                {
                    File.Delete(nomeFileDest);
                    _giornale.Info("Eliminata immagine per il fotografo " + fotografo.cognomeNome);
                }
            }
        }
Example #24
0
        // NON FUNZIONA
        public static Fotografo ottieniFotografoMario3(LumenEntities dbContext)
        {
            EntityKey key = new EntityKey("LumenEntities.Fotografi", "id", idMario);
            Fotografo mario;
            Object    entity;
            bool      trovato = ((IObjectContextAdapter)dbContext).ObjectContext.TryGetObjectByKey(key, out entity);

            if (!trovato)
            {
                mario             = new Fotografo();
                mario.id          = idMario;
                mario.iniziali    = "RM";
                mario.attivo      = true;
                mario.cognomeNome = "Rossi Mario";
                dbContext.Fotografi.Add(mario);
            }
            else
            {
                mario = (Fotografo)entity;
            }

            return(mario);
        }
Example #25
0
        private string validaConfigurazione()
        {
            String msgError = null;

            if (Directory.Exists(cartellaOnRide) == false)
            {
                msgError = "Cartella Onrdide inesistente";
            }

            if (String.IsNullOrWhiteSpace(userConfigOnRide.idFotografo))
            {
                msgError = "Fotografo OnRide non impostato";
            }
            else
            {
                Fotografo f = fotografiReporitorySrv.getById(userConfigOnRide.idFotografo);
                if (f == null)
                {
                    msgError = "Fotografo OnRide non valido";
                }
            }

            return(msgError);
        }
Example #26
0
 public FlashCardConfig(Fotografo fotografo) : this(fotografo, null)
 {
 }
Example #27
0
 public static string nomeFileImgFotografo(Fotografo f)
 {
     return(nomeFileImgFotografo(f, false));
 }
Example #28
0
        public static void setImmagineFotografo(Fotografia fotografia, Fotografo fotografo)
        {
            string nomeFile = AiutanteFoto.idrataImmagineDaStampare(fotografia);

            setImmagineFotografo(nomeFile, fotografo);
        }
Example #29
0
 public FlashCardConfig(Fotografo fotografo, Evento evento)
 {
     version          = 1;
     this.idFotografo = fotografo.id;
 }
Example #30
0
        public void clonaImmagineIncorniciata(Fotografia fotoOrig, string nomeFileImg)
        {
            FileInfo fileInfoSrc   = new FileInfo(fotoOrig.nomeFile);
            string   nomeOrig      = fileInfoSrc.Name;
            string   nomeFotoClone = ClonaImmaginiWorker.getNomeFileClone(fotoOrig);
            string   nomeFileDest  = Path.Combine(Config.Configurazione.cartellaRepositoryFoto, Path.GetDirectoryName(fotoOrig.nomeFile), nomeFotoClone);

            //Sposto la foto nella coartellaRepository e gli attribuisco il suo nome originale.
            File.Move(nomeFileImg, nomeFileDest);

            Fotografia fotoMsk = null;

            using (new UnitOfWorkScope(false))
            {
                try
                {
                    fotoMsk    = new Fotografia();
                    fotoMsk.id = Guid.NewGuid();
                    fotoMsk.dataOraAcquisizione = fotoOrig.dataOraAcquisizione;

                    Fotografo f = fotoOrig.fotografo;
                    OrmUtil.forseAttacca <Fotografo>(ref f);
                    fotoMsk.fotografo = f;

                    if (fotoOrig.evento != null)
                    {
                        Evento e = fotoOrig.evento;
                        OrmUtil.forseAttacca <Evento>(ref e);
                        fotoMsk.evento = e;
                    }

                    fotoMsk.didascalia = fotoOrig.didascalia;
                    fotoMsk.numero     = fotoOrig.numero;
                    // Le correzioni non devo duplicarle perché non sono tipiche della composizione finale, ma della foto originale.

                    fotoMsk.faseDelGiorno = fotoOrig.faseDelGiorno;
                    fotoMsk.giornata      = fotoOrig.giornata;

                    // il nome del file, lo memorizzo solamente relativo
                    // scarto la parte iniziale di tutto il path togliendo il nome della cartella di base delle foto.
                    // Questo perché le stesse foto le devono vedere altri computer della rete che
                    // vedono il percorso condiviso in maniera differente.
                    fotoMsk.nomeFile = Path.Combine(Path.GetDirectoryName(fotoOrig.nomeFile), nomeFotoClone);

                    fotografieRepositorySrv.addNew(fotoMsk);
                    fotografieRepositorySrv.saveChanges();
                }

                catch (Exception ee)
                {
                    _giornale.Error("Non riesco ad inserire una foto clonata. Nel db non c'è ma nel filesystem si: " + fotoOrig.nomeFile, ee);
                }

                AiutanteFoto.creaProvinoFoto(nomeFileDest, fotoMsk);

                // Libero la memoria occupata dalle immagini, altrimenti esplode.
                AiutanteFoto.disposeImmagini(fotoMsk, IdrataTarget.Tutte);

                // Notifico la lista delle foto da mandare in modifica
                NuovaFotoMsg msg = new NuovaFotoMsg(this, fotoMsk);
//				msg.descrizione += Configurazione.ID_FOTOGRAFO_ARTISTA;
                LumenApplication.Instance.bus.Publish(msg);
            }
        }