private void cargarDatosGenerales(int eventoId) { AlabanzaEvento evento = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEvento where o.Id == eventoId select o).SingleOrDefault(); registroId.Text = evento.Id.ToString(); registroDescripcion.Text = evento.Descripcion; registroFecha.Value = evento.Fecha.ToFullDateString(); registroHoraInicio.Value = evento.HoraDiaInicio.Descripcion; registroHoraFin.Value = evento.HoraDiaFin.Descripcion; }
void ICatalogo.Mostrar(int id) { AlabanzaEvento entidad = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEvento where o.Id == id select o).FirstOrDefault(); registroId.Value = entidad.Id; registroDescripcion.Value = entidad.Descripcion; registroFecha.Value = entidad.Fecha; registroHoraDelDiaInicio.Value = entidad.HoraDiaInicioId; registroHoraDelDiaFin.Value = entidad.HoraDiaFinId; permitirAgregarEnsayos(true); // Mostramos las columnas de asistencia/retraso registroMiembros.ColumnModel.SetHidden(3, false); registroMiembros.ColumnModel.SetHidden(4, false); // Cargamos los grids CargarMiembros(); CargarCanciones(); CargarEnsayos(); }
void ICatalogo.Guardar(int id, RegistrosHelper.ListaDeRegistrosDeDatos listaDeRegistrosDeDatos) { // Condiciones de errores NO FATALES bool algunaAsistenciaNovalida = false; bool algunMiembroYaExistente = false; bool algunaCancionYaExistente = false; RegistrosHelper.RegistrosDeDatos miembros = listaDeRegistrosDeDatos.Obtener(registroMiembros.ClientID); RegistrosHelper.RegistrosDeDatos canciones = listaDeRegistrosDeDatos.Obtener(registroCanciones.ClientID); RegistrosHelper.RegistrosDeDatos ensayos = listaDeRegistrosDeDatos.Obtener(registroEnsayos.ClientID); AlabanzaEvento evento; string cancionesYMiembrosRequeridos = "No es posible continuar sin agregar canciones/miembros."; if (id > 0) { evento = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEvento where o.Id == id select o).FirstOrDefault(); if ((evento.AlabanzaEventoMiembro.Count <= 0 && miembros.RegistrosNuevosId.Count <= 0) || (evento.AlabanzaEventoCancion.Count <= 0 && canciones.RegistrosNuevosId.Count <= 0)) { throw new ExcepcionReglaNegocio(cancionesYMiembrosRequeridos); } } else { evento = new AlabanzaEvento(); if ((miembros.RegistrosNuevosId.Count <= 0) || (canciones.RegistrosNuevosId.Count <= 0)) { throw new ExcepcionReglaNegocio(cancionesYMiembrosRequeridos); } } evento.Descripcion = registroDescripcion.Text; evento.Fecha = registroFecha.SelectedDate; evento.HoraDiaInicioId = registroHoraDelDiaInicio.ObtenerId(); evento.HoraDiaFinId = registroHoraDelDiaFin.ObtenerId(); evento.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); // Se determina si la fecha es la correcta como para establecer la asistencia bool esValidoMarcarAsistencia = (DateTime.Now >= evento.Fecha); #region Procesamos los MIEMBROS foreach (KeyValuePair <int, Dictionary <string, string> > registro in miembros.RegistrosNuevos) { AlabanzaEventoMiembro miembro; if (registro.Key > 0) { miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEventoMiembro where o.Id == registro.Key select o).SingleOrDefault(); } else { miembro = new AlabanzaEventoMiembro(); } miembro.AlabanzaEventoId = evento.Id; miembro.AlabanzaMiembroId = registro.Value["AlabanzaMiembroId"].ToInt(); miembro.AlabanzaTipoInstrumentoId = registro.Value["InstrumentoId"].ToInt(); miembro.Retraso = registro.Value["Retraso"].ToBool(); miembro.Asistencia = registro.Value["Asistencia"].ToBool(); if ((miembro.Retraso || miembro.Asistencia) && !esValidoMarcarAsistencia) { algunaAsistenciaNovalida = true; } if ((!evento.AlabanzaEventoMiembro.Any(o => o.AlabanzaMiembroId == miembro.AlabanzaMiembroId && o.AlabanzaTipoInstrumentoId == miembro.AlabanzaTipoInstrumentoId && o.Borrado == false)) || (registro.Key > 0)) { miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); } else { algunMiembroYaExistente = true; } } foreach (int idEliminado in miembros.RegistrosEliminadosId) { AlabanzaEventoMiembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEventoMiembro where o.Id == idEliminado select o).SingleOrDefault(); miembro.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } #endregion #region Procesamos las CANCIONES foreach (KeyValuePair <int, Dictionary <string, string> > registro in canciones.RegistrosNuevos) { AlabanzaEventoCancion cancion; if (registro.Key > 0) { cancion = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEventoCancion where o.Id == registro.Key select o).SingleOrDefault(); } else { cancion = new AlabanzaEventoCancion(); } cancion.AlabanzaEventoId = evento.Id; cancion.AlabanzaCancionId = registro.Value["AlabanzaCancionId"].ToInt(); if ((!evento.AlabanzaEventoCancion.Any(o => o.AlabanzaCancionId == cancion.AlabanzaCancionId && o.Borrado == false)) || (registro.Key > 0)) { cancion.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); } else { algunaCancionYaExistente = true; } } foreach (int idEliminado in canciones.RegistrosEliminadosId) { AlabanzaEventoCancion cancion = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEventoCancion where o.Id == idEliminado select o).SingleOrDefault(); cancion.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } #endregion #region Procesamos los ENSAYOS foreach (int idEliminado in ensayos.RegistrosEliminadosId) { AlabanzaEnsayo ensayo = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEnsayo where o.Id == idEliminado select o).SingleOrDefault(); ensayo.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } #endregion #region validamos y alertamos todos los ERRORES NO FATALES System.Text.StringBuilder condicionDeError = new System.Text.StringBuilder(); if (algunaAsistenciaNovalida) { condicionDeError.AppendLine("No se pueden registrar asistencias/retrasos si el evento aun no se ha llevado a cabo."); } if (algunMiembroYaExistente) { condicionDeError.AppendLine("No puede existir multiples veces el mismo miembro asignado el mismo instrumento."); } if (algunaCancionYaExistente) { condicionDeError.AppendLine("No puede existir multiples veces la mismsa cancion."); } if (!string.IsNullOrEmpty(condicionDeError.ToString())) { X.MessageBox.Alert(Generales.nickNameDeLaApp, "Los cambios han sido guardados, con la siguiente condicion: " + condicionDeError.ToString()).Show(); } #endregion }
void ICatalogo.Borrar(int id) { AlabanzaEvento entidad = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEvento where o.Id == id select o).FirstOrDefault(); entidad.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); }
public IEnumerable <AlabanzaEventoCancion> ObtenerCancionesPorEnsayo(int ensayoId) { AlabanzaEvento evento = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEnsayo where o.Id == ensayoId select o.AlabanzaEvento).SingleOrDefault(); return(this.ObtenerCancionesPorEvento(evento.Id)); }