Example #1
0
 /// <summary>
 /// Obtiene todos los Banner de la base de datos que cumplen con el filtro
 /// </summary>
 /// <param name="argumentosFiltrado">Argumentos para filtrar banners</param>
 /// <returns>Tipo de dato Lista de Banners a filtrar</returns>
 public virtual List <Banner> GetAll(Dictionary <Type, object> argumentosFiltrado)
 {
     using (UnitOfWork pUnitOfWork = new UnitOfWork())
     {
         //usar tipos simple(no objetos)  porque tirar error si se usan objetos
         string nombre = (string)argumentosFiltrado[typeof(string)];
         IQueryable <Banner> result = from banner in pUnitOfWork.BannerRepository.Queryable.Include("RangosFecha").Include("Fuente")
                                      where banner.Nombre.Contains(nombre)
                                      select banner;
         List <Banner> resultado = new List <Banner>();
         //FILTRAR FECHA
         if (argumentosFiltrado.ContainsKey(typeof(RangoFecha)))
         {
             RangoFecha pRF    = (RangoFecha)argumentosFiltrado[typeof(RangoFecha)];
             DateTime   fechaI = pRF.FechaInicio.Date;
             DateTime   fechaF = pRF.FechaFin.Date;
             foreach (var banner in result)
             {
                 IQueryable <RangoFecha> rangoFecha = banner.RangosFecha.AsQueryable <RangoFecha>();
                 var auxiliar = from rf in rangoFecha
                                where ((rf.FechaInicio.CompareTo(fechaI) <= 0 && rf.FechaFin.CompareTo(fechaI) >= 0) ||
                                       ((rf.FechaInicio.CompareTo(fechaF) <= 0 && rf.FechaFin.CompareTo(fechaF) >= 0)) ||
                                       (rf.FechaInicio.CompareTo(fechaI) >= 0 && rf.FechaFin.CompareTo(fechaF) <= 0))
                                select rf;
                 if (auxiliar.ToList().Count != 0)
                 {
                     resultado.Add(banner);
                 }
             }
         }
         else
         {
             resultado = result.ToList();
         }
         //FILTRAR FUENTES
         if (argumentosFiltrado.ContainsKey(typeof(Fuente)))
         {
             Type pTipofuente = (Type)argumentosFiltrado[typeof(Fuente)];
             for (int i = resultado.Count - 1; i >= 0; i--)
             {
                 if (!(resultado[i].Fuente.GetType() == pTipofuente))
                 {
                     resultado.RemoveAt(i);
                 }
             }
         }
         foreach (Banner banner in resultado)
         {
             foreach (RangoFecha rangoFecha in banner.RangosFecha)
             {
                 pUnitOfWork.RangoFechaRepository.Queryable.Include("RangosHorario").ToList();
             }
         }
         return(resultado);
     }
 }
Example #2
0
 /// <summary>
 /// Obtiene una instancia de Banner
 /// </summary>
 /// <param name="pBannerCodigo">Código del Banner que se desea obtener</param>
 /// <returns>Tipo de dato Banner que representa el buscado por código</returns>
 public virtual Banner GetByCodigo(int pBannerCodigo)
 {
     using (UnitOfWork pUnitOfWork = new UnitOfWork())
     {
         Banner banner = pUnitOfWork.BannerRepository.GetByCodigo(pBannerCodigo);
         foreach (RangoFecha rangoFecha in banner.RangosFecha)
         {
             RangoFecha auxiliarRangoFecha = pUnitOfWork.RangoFechaRepository.GetByCodigo(rangoFecha.Codigo);
             rangoFecha.RangosHorario = auxiliarRangoFecha.RangosHorario;
             rangoFecha.Principal     = auxiliarRangoFecha.Principal;
         }
         return(banner);
     }
 }
        /// <summary>
        /// Obtiene todos las Campañas de la base de datos que cumplen con el filtro
        /// </summary>
        /// <param name="argumentosFiltrado">Argumentos para filtrar campañas</param>
        /// <returns>Tipo de dato Lista de campañas a filtrar</returns>
        public virtual List <Campaña> GetAll(Dictionary <Type, object> argumentosFiltrado)
        {
            using (UnitOfWork pUnitOfWork = new UnitOfWork())
            {
                string nombre = (string)argumentosFiltrado[typeof(string)];
                var    result = from campaña in pUnitOfWork.CampañaRepository.Queryable.Include("RangosFecha")
                                where campaña.Nombre.Contains(nombre)
                                select campaña;
                List <Campaña> resultado = new List <Campaña>();
                if (argumentosFiltrado.ContainsKey(typeof(RangoFecha)))
                {
                    RangoFecha pRF    = (RangoFecha)argumentosFiltrado[typeof(RangoFecha)];
                    DateTime   fechaI = pRF.FechaInicio.Date;
                    DateTime   fechaF = pRF.FechaFin.Date;
                    foreach (var campaña in result)
                    {
                        IQueryable <RangoFecha> rangoFecha = campaña.RangosFecha.AsQueryable <RangoFecha>();
                        var auxiliar = from rf in rangoFecha
                                       where ((rf.FechaInicio.CompareTo(fechaI) <= 0 && rf.FechaFin.CompareTo(fechaI) >= 0) ||
                                              ((rf.FechaInicio.CompareTo(fechaF) <= 0 && rf.FechaFin.CompareTo(fechaF) >= 0)) ||
                                              (rf.FechaInicio.CompareTo(fechaI) >= 0 && rf.FechaFin.CompareTo(fechaF) <= 0))
                                       select rf;
                        if (auxiliar.ToList().Count != 0)
                        {
                            resultado.Add(campaña);
                        }
                    }
                }
                else
                {
                    resultado = result.ToList();

                    /*
                     * foreach (Campaña campaña in result)
                     * {
                     *  resultado.Add(campaña);
                     * }
                     */
                }
                //cargar Rangos Horarios
                foreach (Campaña campaña in resultado)
                {
                    foreach (RangoFecha rangoFecha in campaña.RangosFecha)
                    {
                        pUnitOfWork.RangoFechaRepository.Queryable.Include("RangosHorario").ToList();
                    }
                }
                return(resultado);
            }
        }
 /// <summary>
 /// Obtiene una instancia de Campaña
 /// </summary>
 /// <param name="pCampañaCodigo">Código de la Campaña que se desea obtener</param>
 /// <returns>Tipo de dato Campaña que representa la buscada por código</returns>
 public virtual Campaña GetByCodigo(int pCampañaCodigo)
 {
     using (UnitOfWork pUnitOfWork = new UnitOfWork())
     {
         Campaña campaña = pUnitOfWork.CampañaRepository.GetByCodigo(pCampañaCodigo);
         foreach (RangoFecha rangoFecha in campaña.RangosFecha)
         {
             RangoFecha aux = pUnitOfWork.RangoFechaRepository.GetByCodigo(rangoFecha.Codigo);
             rangoFecha.RangosHorario = aux.RangosHorario;
             rangoFecha.Principal     = aux.Principal;
         }
         return(campaña);
     }
 }
Example #5
0
 /// <summary>
 /// Actualiza un Banner de la base de datos
 /// </summary>
 /// <param name="pBanner">Banner a actualizar de la base de datos</param>
 public virtual void Update(Banner pBanner)
 {
     using (UnitOfWork pUnitOfWork = new UnitOfWork())
     {
         Banner databaseBanner = this.GetByCodigo(pBanner.Codigo);
         pUnitOfWork.BannerRepository.Update(databaseBanner);
         pUnitOfWork.BannerRepository.ChangeValues(databaseBanner, pBanner);
         //Rangos Fecha
         List <RangoFecha> rangosFechaEliminados  = ExtesionLista.GetDeleted <RangoFecha>(databaseBanner.RangosFecha, pBanner.RangosFecha);
         List <RangoFecha> rangosFechaModificados = ExtesionLista.GetModified <RangoFecha>(databaseBanner.RangosFecha, pBanner.RangosFecha);
         List <RangoFecha> rangosFechaAInsertar   = ExtesionLista.GetNew <RangoFecha>(databaseBanner.RangosFecha, pBanner.RangosFecha);
         foreach (RangoFecha pRangoFecha in rangosFechaEliminados)
         {
             pRangoFecha.Principal = null;
             pUnitOfWork.RangoFechaRepository.DeleteWithRelated(pRangoFecha);
         }
         foreach (RangoFecha pRangoFecha in rangosFechaAInsertar)
         {
             pRangoFecha.Principal = null;
             pUnitOfWork.RangoFechaRepository.Insert(pRangoFecha);
         }
         foreach (RangoFecha pRangoFecha in rangosFechaModificados)
         {
             //Actualizar Rango Fecha
             RangoFecha rangoFechaOriginal = databaseBanner.RangosFecha.Find(x => x.Equals(pRangoFecha));
             pUnitOfWork.RangoFechaRepository.ChangeValues(rangoFechaOriginal, pRangoFecha);
             //Rangos Horarios
             List <RangoHorario> rangosHorariosAInsertar = pRangoFecha.RangosHorario;
             for (int i = rangoFechaOriginal.RangosHorario.Count - 1; i >= 0; i--)
             {
                 pUnitOfWork.RangoHorarioRepository.Delete(rangoFechaOriginal.RangosHorario[i]);
             }
             foreach (RangoHorario pRangoHorario in rangosHorariosAInsertar)
             {
                 pRangoHorario.RangoFecha = null;
                 pUnitOfWork.RangoHorarioRepository.Insert(pRangoHorario);
             }
         }
         pUnitOfWork.Save();
     }
 }
 /// <summary>
 /// Actualiza una Campaña de la base de datos
 /// </summary>
 /// <param name="pCampaña">Campaña a actualizar</param>
 public virtual void Update(Campaña pCampaña)
 {
     using (UnitOfWork pUnitOfWork = new UnitOfWork())
     {
         Campaña databaseCampaña = this.GetByCodigo(pCampaña.Codigo);
         pUnitOfWork.CampañaRepository.Update(databaseCampaña);
         pUnitOfWork.CampañaRepository.ChangeValues(databaseCampaña, pCampaña);
         //Imágenes
         List <Imagen> imagenesEliminadas  = ExtesionLista.GetDeleted <Imagen>(databaseCampaña.Imagenes, pCampaña.Imagenes);
         List <Imagen> imagenesModificadas = ExtesionLista.GetModified <Imagen>(databaseCampaña.Imagenes, pCampaña.Imagenes);
         List <Imagen> imagenesAInsertar   = ExtesionLista.GetNew <Imagen>(databaseCampaña.Imagenes, pCampaña.Imagenes);
         foreach (Imagen pImagen in imagenesModificadas)
         {
             Imagen imagenOriginal = databaseCampaña.Imagenes.Find(x => x.Equals(pImagen));
             pUnitOfWork.ImagenRepository.ChangeValues(imagenOriginal, pImagen);
         }
         foreach (Imagen pImagen in imagenesEliminadas)
         {
             //Para que no lance excepción
             pImagen.Campaña = null;
             pUnitOfWork.ImagenRepository.DeleteWithRelated(pImagen);
         }
         foreach (Imagen pImagen in imagenesAInsertar)
         {
             //Para que no cree otra campaña
             pImagen.Campaña = null;
             pUnitOfWork.ImagenRepository.Insert(pImagen);
         }
         //Rangos Fecha
         List <RangoFecha> rangosFechaEliminados  = ExtesionLista.GetDeleted <RangoFecha>(databaseCampaña.RangosFecha, pCampaña.RangosFecha);
         List <RangoFecha> rangosFechaModificados = ExtesionLista.GetModified <RangoFecha>(databaseCampaña.RangosFecha, pCampaña.RangosFecha);
         List <RangoFecha> rangosFechaAInsertar   = ExtesionLista.GetNew <RangoFecha>(databaseCampaña.RangosFecha, pCampaña.RangosFecha);
         foreach (RangoFecha pRangoFecha in rangosFechaEliminados)
         {
             pRangoFecha.Principal = null;
             pUnitOfWork.RangoFechaRepository.DeleteWithRelated(pRangoFecha);
         }
         foreach (RangoFecha pRangoFecha in rangosFechaAInsertar)
         {
             pRangoFecha.Principal = null;
             pUnitOfWork.RangoFechaRepository.Insert(pRangoFecha);
         }
         foreach (RangoFecha pRangoFecha in rangosFechaModificados)
         {
             //Actualizar Rango Fecha
             RangoFecha rangoFechaOriginal = databaseCampaña.RangosFecha.Find(x => x.Equals(pRangoFecha));
             pUnitOfWork.RangoFechaRepository.ChangeValues(rangoFechaOriginal, pRangoFecha);
             //Rangos Horarios
             List <RangoHorario> rangosHorariosAInsertar = pRangoFecha.RangosHorario;
             for (int i = rangoFechaOriginal.RangosHorario.Count - 1; i >= 0; i--)
             {
                 pUnitOfWork.RangoHorarioRepository.Delete(rangoFechaOriginal.RangosHorario[i]);
             }
             foreach (RangoHorario pRangoHorario in rangosHorariosAInsertar)
             {
                 pRangoHorario.RangoFecha = null;
                 pUnitOfWork.RangoHorarioRepository.Insert(pRangoHorario);
             }
         }
         pUnitOfWork.Save();
     }
 }