/// <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; } }
/// <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; }