/// <summary> /// Retorna registro de todas las fechas necesarias para un mes y un año particular. /// </summary> /// <param name="mesId"></param> /// <returns>Coleccion de entidades FechaMes requeridas. </returns> Collection <FechaMes> ListaFechasLaborablesMes(int mesId) { //FechaMesData fmReader = new FechaMesData(); ICollectionRead <FechaMes> fmReader = new FechaMesData(); Collection <FechaMes> coll = fmReader.QueryCollection(); IEnumerable <FechaMes> fechas = coll.Where(f => f.MesId == mesId); return(new Collection <FechaMes>(fechas.ToArray())); }
// Crear Fechas laborales //TODO DE forma implicita se ignoran sabados y domingos. Se puede implementar con argumentos. /// <summary> /// Crea registro de todas las fechas necesarias para un mes y un año particular. /// </summary> /// <param name="mesId">Número Id de entidad ClaveMes.</param> /// <returns></returns> bool CrearFechasLaborablesMes(int mesId) { // obtener Entiad correspondiente a esa Id. ClaveMes ent = LeerClaveMes(mesId); if (ent == null) { throw new Exception("Error accediendo a entidad ClaveMes."); } Collection <FechaMes> newCol = new Collection <FechaMes>(); DateTime fecha; DayOfWeek dow; FechaMes newFecha; // Ciclo para cada dias del mes for (int i = 1; i <= DateTime.DaysInMonth(ent.Anno, ent.Mes); i++) { fecha = new DateTime(ent.Anno, ent.Mes, i); dow = fecha.DayOfWeek; if ((dow == DayOfWeek.Saturday) | (dow == DayOfWeek.Sunday)) { continue; } newFecha = new FechaMes() { State = EntityState.Added, MesId = ent.Id, // Foreing Key DiaSemanaId = (int)dow, Fecha = fecha }; newCol.Add(newFecha); } // Pasar coleccion a Writer //FechaMesData dh = new FechaMesData(); ICollectionWrite <FechaMes> dh = new FechaMesData(); return(dh.WriteCollection(newCol)); }