/// <summary> /// Inserto el grupo y las personas en una sola transacción. Si en algún momento del proceso falla, se hace rollback de todo /// </summary> /// <param name="oGrupo"></param> /// <param name="personas"></param> /// <returns></returns> public Grupo InsertGrupoFull(Grupo oGrupo, List <int> personas) { // Busco si existe la compania - Si no existe, creo Excepcion using (CompaniaBusiness oCompaniaBusiness = new CompaniaBusiness()) { if (oCompaniaBusiness.GetCompaniaById(new Compania() { IdCompania = oGrupo.IdCompania }) == null) { throw new Exception(string.Format("La compañia con id {0} no existe", oGrupo.IdCompania)); } } SqlConnection oConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CONEXION"].ConnectionString); oConn.Open(); SqlTransaction oTran = oConn.BeginTransaction(); try { // Inserto el Grupo using (GrupoDataAccess oGrupoDataAccess = new GrupoDataAccess()) { oGrupo = oGrupoDataAccess.Insert(oConn, oTran, oGrupo); } // Obtengo la lista de objetos de GrupoPersonas List <GrupoPersona> oListGrupoPersona = this.GetGrupoPersonas(personas, oGrupo.IdGrupo, oGrupo.UsuarioAlta); // Inserto a las personas del grupo using (GrupoPersonaBusiness oGrupoPersonaBusiness = new GrupoPersonaBusiness()) { oGrupoPersonaBusiness.InsertGrupoPersona(oConn, oTran, oListGrupoPersona, (int)oGrupo.IdGrupo); } oTran.Commit(); } catch (Exception e) { oTran.Rollback(); throw new Exception(e.Message); } finally { oConn.Close(); oTran.Dispose(); } return(this.GetGrupoById(oGrupo)); }
public Grupo InsertGrupo(Grupo oGrupo) { // Busco si existe la compania - Si no existe, creo Excepcion using (CompaniaBusiness oCompaniaBusiness = new CompaniaBusiness()) { if (oCompaniaBusiness.GetCompaniaById(new Compania() { IdCompania = oGrupo.IdCompania }) == null) { throw new Exception(string.Format("La compañia con id {0} no existe", oGrupo.IdCompania)); } } // Inserto el Grupo using (GrupoDataAccess oGrupoDataAccess = new GrupoDataAccess()) { oGrupo = oGrupoDataAccess.Insert(oGrupo); } return(this.GetGrupoById(oGrupo)); }