/// <summary> /// Agrega y elimina integrantes a un grupo de servidores. El grupo de servidores depende un capitan. /// </summary> /// <param name="capitanUsuarioId">Id del miembro "capitan" del grupo de servidores</param> /// <param name="integrantesUsuariosNuevosId">Listado de id's de los miembros "integrantes" a agregar al grupo de servidores</param> /// <param name="integrantesUsuariosEliminadosId">Listado de id's de los miembros "integrantes" a eliminar del grupo de servidores</param> /// <returns>True = Es un nuevo grupo; False = Es un grupo existente y solo fue una actualizacion</returns> public bool GuardarIntegrantesPorCapitan(int capitanUsuarioId, RegistrosHelper.RegistrosDeDatos integrantesNuevosYEliminados) { bool rtn = false; if (capitanUsuarioId > 0 && (integrantesNuevosYEliminados.RegistrosNuevosId.Count > 0 || integrantesNuevosYEliminados.RegistrosEliminadosId.Count > 0)) { ServidorCapitan capitan = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where o.Miembro.MiembroId == capitanUsuarioId select o).FirstOrDefault(); ServidorIntegrante integrante; if (capitan == null) { capitan = new ServidorCapitan(); capitan.MiembroId = capitanUsuarioId; rtn = true; } //Agregamos los nuevos integrantes (siempre y cuando no existan previamente...) foreach (int integranteUsuarioId in integrantesNuevosYEliminados.RegistrosNuevosId) { if (!capitan.ServidorIntegrante.Any(o => o.MiembroId == integranteUsuarioId && o.Borrado == false)) { integrante = new ServidorIntegrante(); integrante.CapitanId = capitanUsuarioId; integrante.MiembroId = integranteUsuarioId; capitan.ServidorIntegrante.Add(integrante); } } //Guardamos los cambios, antes de eliminar registros capitan.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); //Eliminamos los integrantes foreach (int integranteUsuarioId in integrantesNuevosYEliminados.RegistrosEliminadosId) { integrante = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorIntegrante where o.MiembroId == integranteUsuarioId && o.ServidorCapitan.MiembroId == capitanUsuarioId && o.Borrado == false select o).FirstOrDefault(); if (integrante != null) { integrante.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } } return(rtn);; }
public bool GuardarLiderzagoDeCelulas(int miembroId, RegistrosHelper.RegistrosDeDatos celulasNuevasYEliminadas) { bool rtn = false; if (miembroId > 0 && (celulasNuevasYEliminadas.RegistrosNuevosId.Count > 0 || celulasNuevasYEliminadas.RegistrosEliminadosId.Count > 0)) { Miembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroId select o).FirstOrDefault(); CelulaLider celulaLider; if (miembro == null) { throw new ExcepcionReglaNegocio(Literales.RegistroInexistente); } //Agregamos las nuevas celulas (siempre y cuando no existan previamente...) foreach (int celulaId in celulasNuevasYEliminadas.RegistrosNuevosId) { if (!miembro.CelulaLider.Any(o => o.CelulaId == celulaId && o.Borrado == false)) { celulaLider = new CelulaLider(); celulaLider.MiembroId = miembroId; celulaLider.CelulaId = celulaId; miembro.CelulaLider.Add(celulaLider); } } //Guardamos los cambios, antes de eliminar registros miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); //Eliminamos las celulas foreach (int celulaId in celulasNuevasYEliminadas.RegistrosEliminadosId) { celulaLider = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider where o.CelulaId == celulaId && o.MiembroId == miembroId && o.Borrado == false orderby o.CelulaLiderId descending select o).FirstOrDefault(); if (celulaLider != null) { celulaLider.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } } return(rtn); }
public bool GuardarRolesPorMiembro(int miembroId, RegistrosHelper.RegistrosDeDatos rolesNuevosYEliminados) { bool rtn = false; if (miembroId > 0 && (rolesNuevosYEliminados.RegistrosNuevosId.Count > 0 || rolesNuevosYEliminados.RegistrosEliminadosId.Count > 0)) { Miembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroId select o).FirstOrDefault(); MiembroRol miembroRol; if (miembro == null) { throw new ExcepcionReglaNegocio(Literales.RegistroInexistente); } //Agregamos los nuevos roles (siempre y cuando no existan previamente...) foreach (int rolId in rolesNuevosYEliminados.RegistrosNuevosId) { miembroRol = new MiembroRol(); miembroRol.MiembroId = miembroId; miembroRol.RolId = rolId; miembro.MiembroRol.Add(miembroRol); } //Guardamos los cambios, antes de eliminar registros miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); //Eliminamos los roles foreach (int rolId in rolesNuevosYEliminados.RegistrosEliminadosId) { miembroRol = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().MiembroRol where o.RolId == rolId && o.MiembroId == miembroId select o).SingleOrDefault(); if (miembroRol != null) { miembroRol.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } } return(rtn); }
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 }
public void GuardarEnsayo(List <Dictionary <string, string> > registros) { try { // Condiciones de errores NO FATALES bool algunaAsistenciaNovalida = false; RegistrosHelper.RegistrosDeDatos miembros = RegistrosHelper.ObtenerRegistrosDiferenciados(registros); int eventoId = Convert.ToInt32(registroId.Number); int ensayoId = Convert.ToInt32((registroEnsayoId.Number > double.MinValue) ? registroEnsayoId.Number : -1); AlabanzaEnsayo ensayo = (ensayoId > 0 ? (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEnsayo where o.Id == ensayoId select o).SingleOrDefault() : new AlabanzaEnsayo()); ensayo.AlabanzaEventoId = eventoId; ensayo.Fecha = registroEnsayoFecha.SelectedDate; ensayo.HoraDiaInicioId = registroEnsayoHoraInicio.ObtenerId(); ensayo.HoraDiaFinId = registroEnsayoHoraFin.ObtenerId(); ensayo.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); // Se determina si la fecha es la correcta como para establecer la asistencia bool esValidoMarcarAsistencia = (DateTime.Now >= ensayo.Fecha); foreach (KeyValuePair <int, Dictionary <string, string> > registro in miembros.RegistrosNuevos) { int alabanzaEnsayoMiembroId = registro.Value["Id"].ToInt(); AlabanzaEnsayoMiembro miembro = (alabanzaEnsayoMiembroId > 0 ? (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEnsayoMiembro where o.Id == alabanzaEnsayoMiembroId select o).SingleOrDefault() : new AlabanzaEnsayoMiembro()); miembro.AlabanzaEnsayoId = ensayo.Id; miembro.AlabanzaMiembroId = registro.Value["AlabanzaMiembroId"].ToInt(); miembro.Retraso = registro.Value["Retraso"].ToBool(); miembro.Asistencia = registro.Value["Asistencia"].ToBool(); if ((miembro.Retraso || miembro.Asistencia) && !esValidoMarcarAsistencia) { algunaAsistenciaNovalida = true; } miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); } foreach (int idEliminado in miembros.RegistrosEliminadosId) { if (idEliminado > 0) { AlabanzaEnsayoMiembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaEnsayoMiembro where o.Id == idEliminado select o).FirstOrDefault(); miembro.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } // Ocultamos las columnas de asistencia/retraso registroEnsayoMiembros.ColumnModel.SetHidden(3, true); registroEnsayoMiembros.ColumnModel.SetHidden(4, true); LimpiarVentanaDeEnsayos(); CargarEnsayos(); wndAgregarEnsayo.Hide(); #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 ensayo aun no se ha llevado a cabo."); } if (!string.IsNullOrEmpty(condicionDeError.ToString())) { X.MessageBox.Alert(Generales.nickNameDeLaApp, "Los cambios han sido guardados, con la siguiente condicion: " + condicionDeError.ToString()).Show(); } #endregion } catch (ExcepcionReglaNegocio ex) { X.Msg.Alert(Generales.nickNameDeLaApp, ex.Message).Show(); } }
public bool GuardarPasosPorMiembro(int miembroId, RegistrosHelper.RegistrosDeDatos pasosNuevosYEliminados) { bool rtn = false; if (miembroId > 0 && (pasosNuevosYEliminados.RegistrosNuevosId.Count > 0 || pasosNuevosYEliminados.RegistrosEliminadosId.Count > 0)) { Miembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroId select o).FirstOrDefault(); MiembroPaso miembroPaso; if (miembro == null) { throw new ExcepcionReglaNegocio(Literales.RegistroInexistente); } //Si tenemos registros nuevos... if (pasosNuevosYEliminados.RegistrosNuevosId.Count > 0) { //Agregamos los nuevos pasos celulas (siempre y cuando no existan previamente...) foreach (KeyValuePair <int, Dictionary <string, string> > pasoObj in pasosNuevosYEliminados.RegistrosNuevos) { if (!miembro.MiembroPaso.Any(o => o.PasoId == pasoObj.Key && o.Borrado == false)) { int cicloId; if (!int.TryParse(pasoObj.Value["CicloId"], out cicloId)) { Paso paso = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Paso where o.PasoId == pasoObj.Key select o).FirstOrDefault(); if (paso != null) { throw new ExcepcionReglaNegocio(string.Format("El paso [{0}] no cuenta con un ciclo valido; favor de corregirlo y volver a intentar.", paso.Descripcion)); } else { throw new ExcepcionReglaNegocio(string.Format("El paso cuyo id es [{0}] es inexistente; favor de corregirlo y volver a intentar.", pasoObj.Key)); } } miembroPaso = new MiembroPaso(); miembroPaso.MiembroId = miembroId; miembroPaso.PasoId = pasoObj.Key; miembroPaso.CicloId = cicloId; miembro.MiembroPaso.Add(miembroPaso); } } //Guardamos los cambios, antes de eliminar registros miembro.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); } //Eliminamos los pasos eliminados foreach (int pasoId in pasosNuevosYEliminados.RegistrosEliminadosId) { miembroPaso = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().MiembroPaso where o.PasoId == pasoId && o.MiembroId == miembroId && o.Borrado == false select o).FirstOrDefault(); if (miembroPaso != null) { miembroPaso.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } } return(rtn); }
public bool GuardarMaestrosYAlumnosEnGrupo(int grupoId, RegistrosHelper.RegistrosDeDatos maestrosNuevosYEliminados, RegistrosHelper.RegistrosDeDatos alumnosNuevosYEliminados) { bool rtn = false; if (grupoId > 0 && (maestrosNuevosYEliminados.RegistrosNuevosId.Count > 0 || alumnosNuevosYEliminados.RegistrosNuevosId.Count > 0 || maestrosNuevosYEliminados.RegistrosEliminadosId.Count > 0 || alumnosNuevosYEliminados.RegistrosEliminadosId.Count > 0)) { using (System.Transactions.TransactionScope transactionScope = new System.Transactions.TransactionScope()) { FoliGrupo foliGrupo = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().FoliGrupo where o.Id == grupoId select o).FirstOrDefault(); FoliMaestro maestro; FoliMiembro alumno; if (foliGrupo == null) { throw new ExcepcionReglaNegocio(Literales.RegistroInexistente); } //Agregamos las nuevas maestros (siempre y cuando no existan previamente...) foreach (int miembroId in maestrosNuevosYEliminados.RegistrosNuevosId) { maestro = new FoliMaestro(); maestro.FoliGrupoId = grupoId; maestro.MiembroId = miembroId; foliGrupo.FoliMaestro.Add(maestro); } //Agregamos los nuevos alumnos (siempre y cuando no existan previamente...) foreach (int miembroId in alumnosNuevosYEliminados.RegistrosNuevosId) { alumno = new FoliMiembro(); alumno.FoliGrupoId = grupoId; alumno.MiembroId = miembroId; alumno.FoliMiembroEstatusId = 1; foliGrupo.FoliMiembro.Add(alumno); } //Guardamos los cambios, antes de eliminar registros foliGrupo.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); //Eliminamos los maestros foreach (int miembroId in maestrosNuevosYEliminados.RegistrosEliminadosId) { maestro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().FoliMaestro where o.FoliGrupoId == grupoId && o.MiembroId == miembroId && o.Borrado == false select o).FirstOrDefault(); if (maestro != null) { maestro.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } //Eliminamos los alumnos foreach (int miembroId in alumnosNuevosYEliminados.RegistrosEliminadosId) { alumno = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().FoliMiembro where o.FoliGrupoId == grupoId && o.MiembroId == miembroId && o.Borrado == false select o).FirstOrDefault(); if (alumno != null) { alumno.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } //Marcamos como finalizadas todas las operaciones, para que la transaccion se lleve a cabo en la BD transactionScope.Complete(); } } return(rtn); }
public bool GuardarRol(int rolId, string descripcion, RegistrosHelper.RegistrosDeDatos pantallasNuevasYEliminadas, RegistrosHelper.RegistrosDeDatos permisosEspecialesNuevosYEliminados, RegistrosHelper.RegistrosDeDatos rolesAsignablesNuevosYEliminados) { bool rtn = false; if (descripcion.Trim().Length > 0 && (pantallasNuevasYEliminadas.RegistrosNuevosId.Count > 0 || pantallasNuevasYEliminadas.RegistrosEliminadosId.Count > 0 || permisosEspecialesNuevosYEliminados.RegistrosNuevosId.Count > 0 || permisosEspecialesNuevosYEliminados.RegistrosEliminadosId.Count > 0 || rolesAsignablesNuevosYEliminados.RegistrosNuevosId.Count > 0 || rolesAsignablesNuevosYEliminados.RegistrosEliminadosId.Count > 0)) { using (System.Transactions.TransactionScope transactionScope = new System.Transactions.TransactionScope()) { Rol rol = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Rol where o.RolId == rolId select o).FirstOrDefault(); RolPantallaPermitida rpp; RolPermisoEspecial rpe; RolAsignable ra; if (rol == null) { rol = new Rol(); rtn = true; } rol.Descripcion = descripcion; //Agregamos las nuevas pantallas permitidas (siempre y cuando no existan previamente...) foreach (int pantallaPermitidaId in pantallasNuevasYEliminadas.RegistrosNuevosId) { rpp = new RolPantallaPermitida(); rpp.RolId = rolId; rpp.PantallaPermitidaId = pantallaPermitidaId; rol.RolPantallaPermitida.Add(rpp); } //Agregamos los nuevos permisos especiales (siempre y cuando no existan previamente...) foreach (int permisoEspecialId in permisosEspecialesNuevosYEliminados.RegistrosNuevosId) { rpe = new RolPermisoEspecial(); rpe.RolId = rolId; rpe.PermisoEspecialId = permisoEspecialId; rol.RolPermisoEspecial.Add(rpe); } //Agregamos los nuevos roles asignables (siempre y cuando no existan previamente...) foreach (int rolPermitidoId in rolesAsignablesNuevosYEliminados.RegistrosNuevosId) { ra = new RolAsignable(); ra.RolPadreId = rolId; ra.RolHijoId = rolPermitidoId; rol.RolAsignableHijos.Add(ra); } //Guardamos los cambios, antes de eliminar registros rol.Guardar(SesionActual.Instance.getContexto <IglesiaEntities>()); //Eliminamos las pantallas permitidas foreach (int pantallaPermitidaId in pantallasNuevasYEliminadas.RegistrosEliminadosId) { rpp = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().RolPantallaPermitida where o.PantallaPermitidaId == pantallaPermitidaId && o.RolId == rolId select o).SingleOrDefault(); if (rpp != null) { rpp.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } //Eliminamos las permisos especiales foreach (int permisoEspecialId in permisosEspecialesNuevosYEliminados.RegistrosEliminadosId) { rpe = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().RolPermisoEspecial where o.PermisoEspecialId == permisoEspecialId && o.RolId == rolId select o).SingleOrDefault(); if (rpe != null) { rpe.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } //Eliminamos los roles asignables foreach (int rolAsignableId in rolesAsignablesNuevosYEliminados.RegistrosEliminadosId) { ra = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().RolAsignable where o.RolHijoId == rolAsignableId && o.RolPadreId == rolId select o).SingleOrDefault(); if (ra != null) { ra.Borrar(SesionActual.Instance.getContexto <IglesiaEntities>()); } } //Marcamos como finalizadas todas las operaciones, para que la transaccion se lleve a cabo en la BD transactionScope.Complete(); } } return(rtn); }