public void CopyValues(Festivo source)
        {
            if (source == null)
            {
                return;
            }

            _record.CopyValues(source.Base.Record);
        }
        private static FestivoList GetList(string query, bool childs)
        {
            CriteriaEx criteria = Festivo.GetCriteria(Festivo.OpenSession());

            criteria.Childs = childs;

            if (nHManager.Instance.UseDirectSQL)
            {
                criteria.Query = query;
            }

            FestivoList list = DataPortal.Fetch <FestivoList>(criteria);

            CloseSession(criteria.SessionCode);
            return(list);
        }
 public void CopyFrom(Festivo source)
 {
     _base.CopyValues(source);
 }
 public static string SELECT(QueryConditions conditions)
 {
     return(Festivo.SELECT(conditions, false));
 }
        public static SortedBindingList <FestivoInfo> GetList(DateTime fecha_inicio, DateTime fecha_fin)
        {
            CriteriaEx criteria = Festivo.GetCriteria(Festivo.OpenSession());

            criteria.Childs = false;

            List <FestivoInfo> list     = new List <FestivoInfo>();
            List <FestivoInfo> festivos = new List <FestivoInfo>();

            string query = SELECT_BY_DATE(fecha_inicio, fecha_fin);

            try
            {
                IDataReader reader = nHManager.Instance.SQLNativeSelect(query, criteria.Session);

                while (reader.Read())
                {
                    list.Add(FestivoInfo.GetChild(criteria.SessionCode, reader, false));
                }
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            CloseSession(criteria.SessionCode);

            foreach (FestivoInfo info in list)
            {
                if (!info.Anual)
                {
                    festivos.Add(info);
                }
                else
                {
                    TimeSpan span = info.FechaFin.Date.Subtract(info.FechaInicio.Date);

                    for (int i = Math.Max(fecha_inicio.Year, info.FechaInicio.Year); i <= fecha_fin.Year; i++)
                    {
                        DateTime date_inicio = new DateTime(i, info.FechaInicio.Month, info.FechaInicio.Day);

                        if (date_inicio.Date > info.FechaInicio.Date)
                        {
                            FestivoInfo nuevo = FestivoInfo.New();
                            nuevo.CopyFrom(info);

                            nuevo.FechaInicio = date_inicio;
                            nuevo.FechaFin    = date_inicio + span;
                            festivos.Add(nuevo);
                        }
                        else
                        {
                            festivos.Add(info);
                        }
                    }
                }
            }

            SortedBindingList <FestivoInfo> ordenada = new SortedBindingList <FestivoInfo>(festivos);

            ordenada.ApplySort("FechaInicio", ListSortDirection.Ascending);

            return(ordenada);
        }