public Projector() { this.db = new ArsDataContext(); autorizacionService = new AutorizacionService(db); service = new AfiliadoService(db); }
public AutorizacionValidator(ArsDataContext db, Autorizacion autorizacion) { this.db = db; this.afiliadoService = new AfiliadoService(db); this.afiliado = db.Afiliados.Single(p => p.Id == autorizacion.AfiliadoId); this.autorizacion = autorizacion; }
public decimal Balance(int tipoAutorizacionId, string subGrupoId, Autorizacion a, decimal limite) { var fechas = StaticHelpers.GetRangoAnual(a.Afiliado.FechaAfiliacion, a.FechaServicio); AfiliadoService service = new AfiliadoService(new ArsDataContext()); var fechaInicial = fechas[0]; var fechaFinal = fechas[1]; var consumido = a.Afiliado .Autorizaciones .Where(p => (p.TipoAutorizacionId == tipoAutorizacionId) && p.Disponible && p.FechaServicio >= fechaInicial && p.FechaServicio <= fechaFinal) .SelectMany(p => p.Prestaciones.Where(q => (subGrupoId == null) || (q.Prestacion.SubGrupoId == subGrupoId) && q.Disponible)) .Sum(p => p.Aprobado); consumido += a.Prestaciones.Where(p => p.Aprobado > 0).Sum(p => p.Aprobado); return limite - consumido < 0 ? 0 : limite - consumido; }