/// <summary>
        /// Devuelve una lista agrupada por médicos en donde calcula el total recaudado
        /// </summary>
        /// <returns></returns>
        public List<Medico> CalcularEstadisticas()
        {
            try
            {
                List<Medico> medicos = new List<Medico>();
                var atenciones = AccesoModelo.ModeloCm.Atencion
                                .GroupBy(ate => ate.Medico)
                                .Select(med => new Medico
                                    {
                                        Rut = med.First().Medico1.Rut,
                                        NombreMedico = med.First().Medico1.NombreMedico,
                                        TotalDineroRecaudado = med.Sum(m => (m.Precio - m.Descuento) + m.Medico1.Especialidad1.RecargoAdicional),
                                        TotalAtenciones = med.Count()
                                    });

                foreach (var ate in atenciones)
                {
                    Medico medico = new Medico();
                    medico.Rut = ate.Rut;
                    medico.NombreMedico = ate.NombreMedico;
                    medico.TotalDineroRecaudado = ate.TotalDineroRecaudado;
                    medico.TotalAtenciones = ate.TotalAtenciones;
                    medicos.Add(medico);
                }
                return medicos;
            }
            catch (Exception err)
            {
                throw err;
            }
        }
        /// <summary>
        /// Metodo que construye una colección de negocio de Atención.
        /// Para lograr esto recorre una colección de entidades de Atenciones creando
        /// instancias equivalentes de negocio. Estas instancias se agregan a la colección de negocio
        /// </summary>
        /// <param name="entidadMedico"></param>
        /// <returns>List<Medico></returns>
        private List<Atencion> GenerarListado(List<CentroMedico.DALC.Atencion> entidadAtencion)
        {
            try
            {
                List<Atencion> atenciones = new List<Atencion>();
                foreach (CentroMedico.DALC.Atencion ate in entidadAtencion)
                {
                    Atencion atencion = new Atencion();
                    Medico medico = new Medico();
                    Especialidad especialidad = new Especialidad();
                    atencion.NroAtencion = ate.NroAtencion;
                    atencion.RutMedico = ate.Medico;
                    atencion.Prestacion = ate.Prestacion;
                    atencion.Precio = ate.Precio;
                    atencion.Descuento = ate.Descuento;

                    medico.Rut = ate.Medico1.Rut;
                    medico.NombreMedico = ate.Medico1.NombreMedico;
                    medico.IdEspecialidad = ate.Medico1.Especialidad;

                    especialidad.IdEspecialidad = ate.Medico1.Especialidad1.IdEspecialidad;
                    especialidad.NombreEspecialidad = ate.Medico1.Especialidad1.NombreEspecialidad;
                    especialidad.RecargoAdicional = ate.Medico1.Especialidad1.RecargoAdicional;

                    medico.Especialidad = especialidad;
                    atencion.Medico = medico;

                    atenciones.Add(atencion);
                }
                return atenciones;
            }
            catch (Exception err)
            {
                throw err;
            }
        }
        /// <summary>
        /// Metodo que construye una colección de negocio de Médicos.
        /// Para lograr esto recorre una colección de entidades de Médicos creando
        /// instancias equivalentes de negocio. Estas instancias se agregan a la colección de negocio
        /// </summary>
        /// <param name="entidadMedico"></param>
        /// <returns>List<Medico></returns>
        private List<Medico> GenerarListado(List<CentroMedico.DALC.Medico> entidadMedico)
        {
            try
            {
                List<Medico> medicos = new List<Medico>();
                foreach (CentroMedico.DALC.Medico med in entidadMedico)
                {
                    Medico medico = new Medico();
                    Especialidad especialidad = new Especialidad();

                    medico.Rut = med.Rut;
                    medico.NombreMedico = med.NombreMedico;
                    medico.IdEspecialidad = med.Especialidad;

                    especialidad.IdEspecialidad = med.Especialidad1.IdEspecialidad;
                    especialidad.NombreEspecialidad = med.Especialidad1.NombreEspecialidad;
                    especialidad.RecargoAdicional = med.Especialidad1.RecargoAdicional;

                    medico.Especialidad = especialidad;
                    medicos.Add(medico);
                }
                return medicos;
            }
            catch (Exception err)
            {

                throw err;
            }
        }
Example #4
0
 /// <summary>
 /// Método que establece las propiedades de una atención a partir de lo recuperado desde una entidad
 /// </summary>
 /// <param name="atencion"></param>
 private void EstableceAtencion(CentroMedico.DALC.Atencion atencion)
 {
     Medico medico = new Medico();
     Especialidad especialidad = new Especialidad();
     this.NroAtencion = atencion.NroAtencion;
     this.RutMedico = atencion.Medico;
     this.Prestacion = atencion.Prestacion;
     this.Precio = atencion.Precio;
     this.Descuento = atencion.Descuento;
     medico.Rut = atencion.Medico1.Rut;
     medico.NombreMedico = atencion.Medico1.NombreMedico;
     medico.IdEspecialidad = atencion.Medico1.Especialidad;
     especialidad.ConsultarEspecialidadPorId(atencion.Medico1.Especialidad);
     medico.Especialidad = especialidad;
     this.Medico = medico;
 }