public async Task <List <DiaCalendario> > GetCalendariosPorServicioAsync(string linea, string servicio, int turno, string archivoDB) { using (QuattroContext db = new QuattroContext(archivoDB)) { return(await db.Calendario .Include(c => c.Incidencia) .Include(c => c.Relevo) .Include(c => c.Susti) .Include(c => c.Servicios) .Where(c => string.IsNullOrEmpty(linea) ? true : c.NumeroLinea == linea && string.IsNullOrEmpty(servicio) ? true : c.Servicio == servicio && turno == 0 ? true : c.Turno == turno) .OrderBy(c => c.Fecha) .ToListAsync()); } }
// ==================================================================================================== // ==================================================================================================== #region MÉTODOS ESTADÍSTICAS // ==================================================================================================== public async Task <decimal> GetAcumuladasHastaMesAsync(int año, int mes, bool incluirTomaDeje, string archivoDB) { using (QuattroContext db = new QuattroContext(archivoDB)) { var fecha = new DateTime(año, mes, 1).AddMonths(1); var acumuladas = await db.Calendario.Where(c => c.Fecha < fecha).SumAsync(c => c.Acumuladas); if (incluirTomaDeje) { acumuladas += await db.Calendario.Where(c => c.Fecha < fecha) .SumAsync(c => Convert.ToDecimal(Math.Round(c.TomaDeje.TotalHoras, 2))); } acumuladas += await db.HorasAjenas.Where(h => h.Fecha < fecha).SumAsync(h => h.Horas); return(acumuladas); } }
// ==================================================================================================== // ==================================================================================================== #region CONSTRUCTOR // ==================================================================================================== public CalendarioViewModel() { archivoDB = DependencyService.Get <IPathService>().GetFilePath(); using (QuattroContext context = new QuattroContext(archivoDB)) { context.Database.Migrate(); var lista = context.Calendario.AsNoTracking().ToList(); if (!lista.Any()) { for (int mes = 1; mes <= 12; mes++) { for (int dia = 1; dia <= DateTime.DaysInMonth(2018, mes); dia++) { context.Calendario.Add(new DiaCalendario { Fecha = new DateTime(2018, mes, dia), }); } } context.SaveChanges(); } } }
static void ProbarEventos() { using (QuattroContext db = new QuattroContext(ArchivoDB)) { List <DiaCalendario> lista = new List <DiaCalendario>(); var dia1 = db.Calendario.FirstOrDefault(d => d.Fecha == new DateTime(2018, 10, 1)); var dia2 = db.Calendario.FirstOrDefault(d => d.Fecha == new DateTime(2018, 10, 2)); var dia3 = db.Calendario.FirstOrDefault(d => d.Fecha == new DateTime(2018, 10, 3)); dia1.Servicios = new List <ServicioCalendario>(); dia2.Servicios = new List <ServicioCalendario>(); dia3.Servicios = new List <ServicioCalendario>(); dia1.Incidencia = new Incidencia { Tipo = 1 }; dia2.Incidencia = new Incidencia { Tipo = 1 }; dia3.Incidencia = new Incidencia { Tipo = 1 }; dia1.JornadaChanged += Dia_JornadaChanged; dia2.JornadaChanged += Dia_JornadaChanged; dia3.JornadaChanged += Dia_JornadaChanged; lista.Add(dia1); lista.Add(dia2); lista.Add(dia3); Console.Clear(); EscribirListaDias(lista); Console.ReadKey(); dia1.Turno = 1; dia1.Inicio = new Tiempo(6, 0); dia1.Final = new Tiempo(14, 0); dia2.Turno = 2; dia2.Inicio = new Tiempo(14, 30); dia2.Final = new Tiempo(23, 15); dia3.Turno = 1; dia3.Inicio = new Tiempo(4, 20); dia3.Final = new Tiempo(12, 0); Console.Clear(); EscribirListaDias(lista); Console.ReadKey(); dia1.Turno = 1; dia1.Inicio = new Tiempo(9, 0); dia1.Final = new Tiempo(15, 45); dia2.Turno = 2; dia2.Servicios.Add(new ServicioCalendario { Servicio = "6", Turno = 2, Inicio = new Tiempo(22, 00), Final = new Tiempo(24, 35) }); dia2.Inicio = new Tiempo(16, 30); dia2.Final = new Tiempo(22, 00); dia3.Turno = 2; dia3.Inicio = new Tiempo(13, 20); dia3.Final = new Tiempo(20, 5); Console.Clear(); EscribirListaDias(lista); Console.ReadKey(); } }
// ==================================================================================================== // ==================================================================================================== #region CONSTRUCTOR // ==================================================================================================== public EFDataRepository(QuattroContext context) { this.context = context; context.Database.EnsureCreated(); }