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;
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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
        }
Beispiel #4
0
        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>());
        }
Beispiel #5
0
        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));
        }