/// <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) { Campaña databaseCampaña = this.GetByCodigo(pCampaña.Codigo); using (UnitOfWork pUnitOfWork = new UnitOfWork()) { this.iUnitOfWork = pUnitOfWork; //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) { this.iUnitOfWork.ImagenRepository.Update(pImagen); } foreach (Imagen pImagen in imagenesEliminadas) { this.iUnitOfWork.ImagenRepository.Delete(pImagen); } foreach (Imagen pImagen in imagenesAInsertar) { this.iUnitOfWork.ImagenRepository.Insert(pImagen); } //RANGOS FECHA y HORARIO 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) { this.iUnitOfWork.RangoFechaRepository.Delete(pRangoFecha); } foreach (RangoFecha pRangoFecha in rangosFechaAInsertar) { this.iUnitOfWork.RangoFechaRepository.Insert(pRangoFecha); } foreach (RangoFecha pRangoFecha in rangosFechaModificados) { //Rangos Horarios List<RangoHorario> rangosHorarioDatabase = databaseCampaña.RangosFecha.Find(x => x == pRangoFecha).RangosHorario; List<RangoHorario> rangosHorariosEliminados = ExtesionLista.GetDeleted<RangoHorario>(rangosHorarioDatabase, pRangoFecha.RangosHorario); List<RangoHorario> rangosHorariosModificados = ExtesionLista.GetModified<RangoHorario>(rangosHorarioDatabase, pRangoFecha.RangosHorario); List<RangoHorario> rangosHorariosAInsertar = ExtesionLista.GetNew<RangoHorario>(rangosHorarioDatabase, pRangoFecha.RangosHorario); foreach (RangoHorario pRangoHorario in rangosHorariosEliminados) { this.iUnitOfWork.RangoHorarioRepository.Delete(pRangoHorario); } foreach (RangoHorario pRangoHorario in rangosHorariosAInsertar) { this.iUnitOfWork.RangoHorarioRepository.Insert(pRangoHorario); } foreach (RangoHorario pRangoHorario in rangosHorariosModificados) { this.iUnitOfWork.RangoHorarioRepository.Update(pRangoHorario); } this.iUnitOfWork.RangoFechaRepository.Update(pRangoFecha); } this.iUnitOfWork.CampañaRepository.Update(pCampaña); this.iUnitOfWork.Save(); } }
/// <summary> /// Elimina una Campaña de la base de datos /// </summary> /// <param name="pCampaña">Campaña a eliminar</param> public virtual void Delete(Campaña pCampaña) { using (UnitOfWork pUnitOfWork = new UnitOfWork()) { pUnitOfWork.CampañaRepository.DeleteWithRelated(pCampaña); pUnitOfWork.Save(); } }
/// <summary> /// Crea (guarda) una Campaña junto con sus Imágenes y Rangos de Fecha en la base de datos /// </summary> /// <param name="pCampaña">Campaña a almacenar en la base datos</param> /// <returns>Tipo de dato entero que representa el código de la campaña</returns> public virtual int Create(Campaña pCampaña) { using (UnitOfWork pUnitOfWork = new UnitOfWork()) { pUnitOfWork.CampañaRepository.Insert(pCampaña); pUnitOfWork.Save(); return(pCampaña.Codigo); } }
/// <summary> /// Crea (guarda) una Campaña junto con sus Imágenes y Rangos de Fecha en la base de datos /// </summary> /// <param name="pCampaña">Campaña a almacenar en la base datos</param> public virtual void Create(Campaña pCampaña) { using (UnitOfWork pUnitOfWork = new UnitOfWork()) { this.iUnitOfWork = pUnitOfWork; this.iUnitOfWork.CampañaRepository.Insert(pCampaña); this.iUnitOfWork.Save(); } }
/// <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); } }
public void PrubaCrearCampaña() { Imagen imagen1 = new Imagen { Codigo = 1, Tiempo = 10, Image = ImagenServices.ImageToByteArray(Image.FromFile(@"F:/Lucho/Varios/Salida.jpg", true)) }; List<Imagen> listaImagenes = new List<Imagen>(); listaImagenes.Add(imagen1); RangoHorario rangoHor1 = new RangoHorario { Codigo = 1, HoraFin = DateTime.Now.TimeOfDay, HoraInicio = DateTime.Now.AddMinutes(98).TimeOfDay }; RangoFecha rangoFecha1 = new RangoFecha { Codigo = 1, FechaInicio = DateTime.Today, FechaFin = DateTime.Today.AddDays(10), RangosHorario = new List<RangoHorario>() }; rangoFecha1.RangosHorario.Add(rangoHor1); List<RangoFecha> listaRangosFecha = new List<RangoFecha>(); listaRangosFecha.Add(rangoFecha1); Campaña campaña = new Campaña { Codigo = 1, Imagenes = listaImagenes, Nombre = "Prueba", IntervaloTiempo = 80, RangosFecha = listaRangosFecha }; FachadaCRUDCampaña fachada = new FachadaCRUDCampaña(); fachada.Create(campaña); }
/// <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(); } }
/// <summary> /// Elimina una campaña de la base de datos /// </summary> /// <param name="pCampaña">Campaña a eliminar</param> public void EliminarCampaña(Campaña pCampaña) { FachadaCRUDCampaña fachadaCampaña = new FachadaCRUDCampaña(); fachadaCampaña.Delete(fachadaCampaña.GetByCodigo(pCampaña.Codigo)); }
/// <summary> /// Actualiza la Campaña de la base de datos /// </summary> /// <param name="pCampaña">Campaña con los datos nuevos a actualizar</param> public void ActualizarCampaña(Campaña pCampaña) { FachadaCRUDCampaña fachadaCampaña = new FachadaCRUDCampaña(); fachadaCampaña.Update(pCampaña); }
/// <summary> /// Crea la Campaña en la base de datos /// </summary> /// <param name="pCampaña">Campaña a crear</param> /// <returns>Tipo de dato entero que representa el código en la base de datos de la campaña</returns> public int CrearCampaña(Campaña pCampaña) { FachadaCRUDCampaña fachadaCampaña = new FachadaCRUDCampaña(); return(fachadaCampaña.Create(pCampaña)); }
/// <summary> /// Elimina una Campaña de la base de datos /// </summary> /// <param name="pCampaña">Campaña a eliminar</param> public virtual void Delete(Campaña pCampaña) { using (UnitOfWork pUnitOfWork = new UnitOfWork()) { this.iUnitOfWork = new UnitOfWork(); this.iUnitOfWork.CampañaRepository.Delete(pCampaña); this.iUnitOfWork.Save(); } }