Esempio n. 1
0
        //Metodo genérico que trae todos los subitems de un item determinado, segun el id de dependencia ( padre) en las tipificaciones
        public DataTable GeneraArbolJerarquico(string dependencia = "")
        {
            try
            {
                var drs = InteractionExtensionCrossnetModule.TablaTipificaciones
                          .Select("DEPENDIENTE = " + Convert.ToInt32(dependencia));

                var retorno = InteractionExtensionCrossnetModule.TablaTipificaciones.Clone();
                foreach (var d in drs)
                {
                    retorno.ImportRow(d);
                }

                return(retorno);
            }
            catch (Exception error)
            {
                GenesysAlert.SendMessage(
                    "Se ha producido un error al obtener la lista de sub-tipificaciones: " + error.Message, "Public",
                    SeverityType.Error);
                return(null);
            }
        }
Esempio n. 2
0
        public static Interaccion GetAttachedData(IInteraction inx)
        {
            var datosInx = new Interaccion
            {
                GenAgente = InteractionExtensionCrossnetModule.Agente.UserName
            };


            if (inx.EntrepriseInteractionCurrent != null)
            {
                datosInx.GenConnid = inx.EntrepriseInteractionCurrent.Id;

                switch (inx.EntrepriseInteractionCurrent.IdType.Direction.ToString())
                {
                case "In":
                {
                    datosInx.GenCanalEntrada = "Inbound";
                    break;
                }

                case "Out":
                {
                    datosInx.GenCanalEntrada = "Outbound";
                    break;
                }
                }
            }

            if (inx.Type.Equals("InteractionVoice"))
            {
                datosInx.GenFechaInicioCall   = inx.StartDate;
                datosInx.GenNombreInteraccion = inx.Type;

                switch (inx.EntrepriseLastInteractionEvent.Id)
                {
                case EventDialing.MessageId:
                {
                    var eventDial = inx.EntrepriseLastInteractionEvent as EventDialing;
                    if (eventDial != null)
                    {
                        datosInx.GenOrigen  = eventDial.ANI;
                        datosInx.GenDestino = eventDial.DNIS;
                    }
                    return(datosInx);
                }

                case EventRinging.MessageId:
                {
                    var eventRing = inx.EntrepriseLastInteractionEvent as EventRinging;
                    if (eventRing != null)
                    {
                        datosInx.GenOrigen  = eventRing.ANI;
                        datosInx.GenDestino = eventRing.DNIS;
                    }
                    return(datosInx);
                }

                case EventEstablished.MessageId:
                {
                    var eventEstab = inx.EntrepriseLastInteractionEvent as EventEstablished;
                    if (eventEstab != null)
                    {
                        datosInx.GenOrigen  = eventEstab.ANI;
                        datosInx.GenDestino = eventEstab.DNIS;
                    }
                    return(datosInx);
                }

                case EventReleased.MessageId:
                {
                    var eventRelease = inx.EntrepriseLastInteractionEvent as EventReleased;
                    if (eventRelease != null)
                    {
                        datosInx.GenOrigen  = eventRelease.ANI;
                        datosInx.GenDestino = eventRelease.DNIS;
                    }
                    return(datosInx);
                }

                case EventAttachedDataChanged.MessageId:
                {
                    var eventDataChanged =
                        inx.EntrepriseLastInteractionEvent as EventAttachedDataChanged;
                    if (eventDataChanged != null)
                    {
                        datosInx.GenOrigen  = eventDataChanged.ANI;
                        datosInx.GenDestino = eventDataChanged.DNIS;
                    }
                    return(datosInx);
                }
                }
            }

            if (inx.Type.Equals("InteractionChat"))
            {
                try
                {
                    datosInx.GenConnid = inx.EntrepriseInteractionCurrent != null &&
                                         inx.EntrepriseInteractionCurrent.Id != null
                        ? inx.EntrepriseInteractionCurrent.Id
                        : "";
                    datosInx.GenFechaInicioCall   = inx.StartDate;
                    datosInx.GenNombreInteraccion = inx.Type;
                    if (datosInx.GenCanalEntrada.Equals("Inbound"))
                    {
                        datosInx.GenTipoInteraccion = 1;
                    }
                    else if (datosInx.GenCanalEntrada.Equals("Outbound"))
                    {
                        datosInx.GenTipoInteraccion = 2;
                    }
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos del Chat en InteractionChat: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }
            if (inx.Type.Equals("InteractionCallback"))
            {
                try
                {
                    datosInx.GenOrigen = inx.GetAttachedData("PhoneNumber").ToString();
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos del fono en InteractionCallback: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }
            if (inx.Type.Equals("InteractionInboundEmail"))
            {
                try
                {
                    datosInx.GenConnid = inx.EntrepriseInteractionCurrent != null &&
                                         inx.EntrepriseInteractionCurrent.Id != null
                        ? inx.EntrepriseInteractionCurrent.Id
                        : "";
                    datosInx.GenFechaInicioCall = inx.StartDate;
                    datosInx.GenTipoInteraccion = 10;
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos del email en InteractionInboundEmail: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }

            if (inx.Type.Equals("InteractionOutboundEmail"))
            {
                try
                {
                    datosInx.GenConnid = inx.EntrepriseInteractionCurrent != null &&
                                         inx.EntrepriseInteractionCurrent.Id != null
                        ? inx.EntrepriseInteractionCurrent.Id
                        : "";
                    datosInx.GenFechaInicioCall = inx.StartDate;
                    datosInx.GenTipoInteraccion = 11;
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos del email en InteractionOutboundEmail: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }

            if (inx.Type.Equals("InteractionPullPreview"))
            {
                try
                {
                    datosInx.GenRecordId        = inx.OutboundChainRecord.UserData.GetAsInt("recordid");
                    datosInx.GenChainIdCampana  = inx.OutboundChainRecord.UserData.GetAsInt("GSW_CHAIN_ID");
                    datosInx.GenCampaingName    = inx.OutboundChainRecord.CampaignName;
                    datosInx.GenGuid            = inx.OutboundChainRecord.UserData.GetAsString("GSW_CALL_ATTEMPT_GUID");
                    datosInx.GenAttempt         = inx.OutboundChainRecord.UserData.GetAsInt("GSW_ATTEMPTS");
                    datosInx.GenGroupName       = inx.OutboundChainRecord.UserData.GetAsString("GSW_CAMPAIGN_GROUP_NAME");
                    datosInx.GenTipoInteraccion = 7;
                    datosInx.GenCanalEntrada    = inx.OutboundChainRecord.UserData.GetAsString("InteractionType");
                    datosInx.GenCanalEntrada    = "PreviewRecord";
                    datosInx.GenEvento          = inx.OutboundChainRecord.UserData.GetAsString("GSW_USER_EVENT");
                    datosInx.GenDestino         = inx.OutboundChainRecord.UserData.GetAsString("GSW_PHONE");
                    datosInx.GenOrigen          = inx.Agent.Place.PlaceName;
                    datosInx.GenFechaInicioCall = DateTime.Now;
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos de la campaña en InteractionPullPreview: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }

            if (inx.Type.Equals("InteractionPushPreview"))
            {
                try
                {
                    datosInx.GenRecordId        = inx.OutboundChainRecord.UserData.GetAsInt("recordid");
                    datosInx.GenChainIdCampana  = inx.OutboundChainRecord.UserData.GetAsInt("GSW_CHAIN_ID");
                    datosInx.GenCampaingName    = inx.OutboundChainRecord.CampaignName;
                    datosInx.GenGuid            = inx.OutboundChainRecord.UserData.GetAsString("GSW_CALL_ATTEMPT_GUID");
                    datosInx.GenAttempt         = inx.OutboundChainRecord.UserData.GetAsInt("GSW_ATTEMPTS");
                    datosInx.GenGroupName       = inx.OutboundChainRecord.UserData.GetAsString("GSW_CAMPAIGN_GROUP_NAME");
                    datosInx.GenTipoInteraccion = 37;
                    datosInx.GenCanalEntrada    = inx.OutboundChainRecord.UserData.GetAsString("InteractionType");
                    datosInx.GenCanalEntrada    = "PreviewRecord";
                    datosInx.GenEvento          = inx.OutboundChainRecord.UserData.GetAsString("GSW_USER_EVENT");
                    datosInx.GenDestino         = inx.OutboundChainRecord.UserData.GetAsString("GSW_PHONE");
                    datosInx.GenOrigen          = inx.Agent.Place.PlaceName;
                    datosInx.GenFechaInicioCall = DateTime.Now;
                }
                catch (Exception error)
                {
                    GenesysAlert.SendMessage(
                        "Se ha producido un error al obtener los campos de la campaña en InteractionPullPreview: " +
                        error.Message, "Public", SeverityType.Error);
                }
            }

            return(datosInx);
        }