Ejemplo n.º 1
0
        public IndicadorCanalesVirtuales GetIndicadoresCanalesVirtuales(IEnumerable <decimal> usuarios, IEnumerable <decimal> areas, DateTime fechaInicio, DateTime fechaFin)
        {
            using (Tracer t = new Tracer())
            {
                t.TraceVerbose("GetIndicadoresCanalesVirtuales usuarios: [{0}], areas: [{1}], fechaInicio: [{2}], fechaFin: [{3}]",
                               string.Join(",", usuarios), string.Join(",", areas), fechaInicio, fechaFin);

                IndicadorCanalesVirtuales indicadores = new IndicadorCanalesVirtuales();

                string usuariosList = GetList(usuarios);
                string areasList    = GetList(areas);

                try
                {
                    EstspIndCanVirtualSelResult wsCanales = null;
                    using (WsindicadoresestadisticasWebClient wsClient = new WsindicadoresestadisticasWebClient())
                    {
                        wsCanales = wsClient.estspIndCanVirtualSel(usuariosList,
                                                                   areasList,
                                                                   fechaInicio,
                                                                   fechaFin);
                    }

                    if (wsCanales.indicadoresCanalesVirtuales != null)
                    {
                        indicadores = TransformWSCanalesToCanal(wsCanales);
                    }

                    EstspPpnidPacientesSelResult wsIndicador = null;
                    using (WsindicadoresestadisticasWebClient wsClient = new WsindicadoresestadisticasWebClient())
                    {
                        wsIndicador = wsClient.estspPpnidPacientesSel(usuariosList,
                                                                      areasList);
                    }

                    foreach (var paciente in wsIndicador.ppnidPacientes)
                    {
                        decimal result = 0;
                        result = GetIndicadoresCRM(paciente.usunuPersonaId,
                                                   fechaInicio,
                                                   fechaFin);

                        indicadores.CRM = indicadores.CRM + result;
                    }

                    indicadores.TotalMensajes = indicadores.CRM + indicadores.RCE + indicadores.PortalPacientes;
                }
                catch (Exception ex)
                {
                    String error = ex.Message;
                    Console.WriteLine("Error = " + error);
                    t.TraceError("Error = " + error);
                }

                return(indicadores);
            }
        }
Ejemplo n.º 2
0
        private IndicadorCanalesVirtuales TransformWSCanalesToCanal(EstspIndCanVirtualSelResult canal)
        {
            IndicadorCanalesVirtuales result = new IndicadorCanalesVirtuales()
            {
                CRM                      = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.ABIERTO && m.msjnuFuente == (int)Fuente.CRM).Count(),
                CRMRespuesta             = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.CERRADO && m.msjnuFuente == (int)Fuente.CRM).Count(),
                PortalPacientes          = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.ABIERTO && m.msjnuFuente == (int)Fuente.PortalSalud).Count(),
                PortalPacientesRespuesta = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.CERRADO && m.msjnuFuente == (int)Fuente.PortalSalud).Count(),
                RCE                      = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.ABIERTO && m.msjnuFuente == (int)Fuente.RCE).Count(),
                RCERespuesta             = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.CERRADO && m.msjnuFuente == (int)Fuente.PortalSalud).Count(),
                TotalMensajes            = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.ABIERTO).Count(),
                TotalMensajesRespuesta   = canal.indicadoresCanalesVirtuales.Where(m => m.msjnuEstadoMensaje == (int)EstadoMensaje.CERRADO).Count()
            };

            return(result);
        }
Ejemplo n.º 3
0
        private static IndicadorCanalesVirtuales ObtenerIndicadorCanalesVirtuales()
        {
            Random rand = new Random();

            var indicador = new IndicadorCanalesVirtuales();

            indicador.CRM                      = rand.Next(0, 100);
            indicador.CRMRespuesta             = rand.Next(0, (int)indicador.CRM);
            indicador.PortalPacientes          = rand.Next(0, 100);
            indicador.PortalPacientesRespuesta = rand.Next(0, (int)indicador.PortalPacientes);
            indicador.RCE                      = rand.Next(0, 100);
            indicador.RCERespuesta             = rand.Next(0, (int)indicador.RCE);
            indicador.TotalMensajes            = indicador.CRM + indicador.PortalPacientes + indicador.RCE;
            indicador.TotalMensajesRespuesta   = indicador.CRMRespuesta + indicador.PortalPacientesRespuesta + indicador.RCERespuesta;

            return(indicador);
        }