private void CrossnetEventHandler(object eventObject)
        {
            var eventMessage = eventObject as string;

            if (eventMessage != null)
            {
                switch (eventMessage)
                {
                case "Loggin":
                    try
                    {
                        EResultado error;
                        Agente       = _container.Resolve <IAgent>();
                        AgenteConfig = Agente.ConfPerson;
                        var lala = Agente.MonitoredCfgPersonAgents;
                        if (Agente != null)
                        {
                            Agente agent = new Agente
                            {
                                userName = Agente.UserName != null ?
                                           Agente.UserName : "",
                            };
                            if (AgenteConfig != null)
                            {
                                var lala2 = AgenteConfig.GetType();
                                agent.firstName = AgenteConfig.FirstName != null ?
                                                  AgenteConfig.FirstName : "";
                                agent.lastName = AgenteConfig.LastName != null ?
                                                 AgenteConfig.LastName : "";
                                agent.tenantDBid = 147;
                                agent.agentDBid  = AgenteConfig.DBID != null ?
                                                   AgenteConfig.DBID : 0;
                                agent.EmployeeId = AgenteConfig.EmployeeID != null ?
                                                   AgenteConfig.EmployeeID : "";
                            }
                            var resultado = _metodoApi.autentificacion(out error, agent);
                            if (resultado != null)
                            {
                                token = resultado.token;
                            }
                        }
                        var itemsLista = _metodoApi.ArbolTipificacion(out error, token);
                        if (itemsLista != null)
                        {
                            if (itemsLista.listaArbol != null)
                            {
                                TablaTipificaciones = Utility.ListToDataTable(itemsLista.listaArbol);
                            }
                        }
                        else
                        {
                            TablaTipificaciones = null;
                        }

                        var itemsFiltro = _metodoApi.ListaFiltro(out error, token);
                        if (itemsFiltro != null)
                        {
                            listaFiltro = itemsFiltro.listaFiltro;
                        }
                        listaAtached = _metodoApi.ListAtached(out error, token);
                        _TablaInteraccion.Columns.Add("IdMarkDone");
                        _TablaInteraccion.Columns.Add("EventoMarkdone");
                        _TablaInteraccion.Columns.Add("Estado");
                        _TablaInteraccion.Columns.Add("Agente");
                    }
                    catch (Exception error)
                    {
                        GenesysAlert.SendMessage(
                            "Se ha producido un error en el login: "******"Public",
                            SeverityType.Error);
                    }


                    break;
                }
            }
        }
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <param name="progress">The progress.</param>
        /// <returns></returns>
        /// <summary>
        /// Executes the command.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <param name="progress">The progress.</param>
        /// <returns></returns>
        public bool Execute(IDictionary <string, object> parameters, IProgressUpdater progress)
        {
            // To go to the main thread


            if (Application.Current.Dispatcher != null && !Application.Current.Dispatcher.CheckAccess())
            {
                object result = Application.Current.Dispatcher.Invoke(DispatcherPriority.Send, new ExecuteDelegate(Execute), parameters, progress);
                return((bool)result);
            }
            else
            {
                // Ok, we are in the main thread
                log.Info("Execute");
                IInteraction interactionVoice = parameters["InteractionMarkDone0"] as IInteraction;
                var          inx = InteraccionGenesys.GetAttachedData(interactionVoice);

                // Get the parameter


                if (interactionVoice != null)
                {
                    var tipoInteraccion = interactionVoice.Type;
                    switch (tipoInteraccion)
                    {
                    case "InteractionVoice":

                        termino.CaseId    = interactionVoice.CaseId;
                        termino.Agentdbid = InteractionExtensionCrossnetModule.AgenteConfig != null ?
                                            InteractionExtensionCrossnetModule.AgenteConfig.DBID : 0;

                        inx.genEventoMarkdone = "InteractionVoice";

                        inx.IdMarkdone = interactionVoice.EntrepriseInteractionCurrent.Id;
                        break;

                    case "InteractionPullPreview":
                        var item = interactionVoice.OutboundChainRecord.Records.FirstOrDefault();
                        inx.genEventoMarkdone = "PreviewRecord";
                        inx.IdMarkdone        = item.CallAttemptGUID;

                        termino.CaseId    = interactionVoice.CaseId;
                        termino.Agentdbid = InteractionExtensionCrossnetModule.AgenteConfig != null ?
                                            InteractionExtensionCrossnetModule.AgenteConfig.DBID : 0;

                        inx.genEventoMarkdone = "PreviewRecord";

                        break;

                    case "InteractionCallback":
                        termino.CaseId    = interactionVoice.CaseId;
                        termino.Agentdbid = InteractionExtensionCrossnetModule.AgenteConfig != null ?
                                            InteractionExtensionCrossnetModule.AgenteConfig.DBID : 0;

                        inx.genEventoMarkdone = "InteractionCallback";

                        inx.IdMarkdone = interactionVoice.EntrepriseInteractionCurrent.Id;

                        break;
                    }
                    if (InteractionExtensionCrossnetModule.TablaTipificaciones == null)
                    {
                        return(false);
                    }

                    EResultado resultado = null;

                    _metodoApi.TerminoInteraccion(out resultado, termino, InteractionExtensionCrossnetModule.token);

                    DataRow resultMarkDone = null;
                    switch (tipoInteraccion)
                    {
                    case "InteractionVoice":
                        inx.genEventoMarkdone = "InteractionVoice";
                        inx.IdMarkdone        = interactionVoice.EntrepriseInteractionCurrent.Id;
                        resultMarkDone        = InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                                            "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault();

                        break;

                    case "InteractionPullPreview":
                        var item = interactionVoice.OutboundChainRecord.Records.FirstOrDefault();
                        inx.genEventoMarkdone = "PreviewRecord";
                        inx.IdMarkdone        = item.CallAttemptGUID;
                        resultMarkDone        = InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                                            "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault();

                        break;

                    case "InteractionCallback":
                        inx.genEventoMarkdone = "InteractionCallback";
                        inx.IdMarkdone        = interactionVoice.EntrepriseInteractionCurrent.Id;
                        resultMarkDone        = InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                                            "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault();

                        break;
                    }
                    string Estado = resultMarkDone["Estado"] != null ? resultMarkDone["Estado"].ToString() : "";
                    if (!Estado.Equals("TIPIFICADO"))
                    {
                        GenesysAlert.SendMessage("Favor tipificar", "Public", SeverityType.Warning);
                        return(true);
                    }
                    else
                    {
                        switch (tipoInteraccion)
                        {
                        case "InteractionVoice":
                            InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                        "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault().Delete();
                            break;

                        case "InteractionPullPreview":
                            var item = interactionVoice.OutboundChainRecord.Records.FirstOrDefault();
                            InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                        "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault().Delete();

                            break;

                        case "InteractionCallback":
                            InteractionExtensionCrossnetModule._TablaInteraccion.Select("idMarkDone = '" + inx.IdMarkdone +
                                                                                        "' and Agente ='" + inx.GenAgente + "'").FirstOrDefault().Delete();
                            break;
                        }
                    }
                }

                return(false);
            }
        }