public bool updateUsuario(ReglasBE Reglas, UsuariosBE Usuario, List <DomicilioBE> Domicilios, List <ContactoBE> Contactos, List <RolesXUsuarioBE> RolesXUsuario, Int64 App) { linqIELDataBaseDataContext dboSegLatino = new linqIELDataBaseDataContext(); DbTransaction scopeGrl; dboSegLatino.Connection.Open(); scopeGrl = dboSegLatino.Connection.BeginTransaction(); dboSegLatino.Transaction = scopeGrl; UsuariosBE UsuarioRes = new UsuariosBE(); bool bFlag = true; try { using (scopeGrl) { ////Actualizamos al usuario dboSegLatino.sp_updUsuario(Usuario.IDUSUARIO, App, (Usuario.IDSEXO > 0 ? (Int32?)Usuario.IDSEXO : null), (Usuario.IDTIPOPERSONA > 0 ? (Int32?)Usuario.IDTIPOPERSONA : null), (Usuario.IDESTADOCIVIL > 0 ? (Int32?)Usuario.IDESTADOCIVIL : null), (Usuario.IDAREA > 0 ? (Int32?)Usuario.IDAREA : null), (Usuario.IDTIPOUSUARIO > 0 ? (Int32?)Usuario.IDTIPOUSUARIO : null), Usuario.IDUSUARIOAPP, Usuario.APATERNO, Usuario.AMATERNO, Usuario.NOMBRE, Usuario.FECHANACCONST, Usuario.USUARIO, Usuario.PASSWORD, Usuario.RUTAFOTOPERFIL, Usuario.ACTIVO, (Reglas.IDUSRMODIF > 0 ? (Int64?)Reglas.IDUSRMODIF : null), App); ////Insertamos sus Domicilios if (Domicilios != null) { foreach (DomicilioBE Dom in Domicilios) { if (Dom.IDDOMICILIO > 0) { dboSegLatino.sp_updDomicilio(Usuario.IDUSUARIO, Dom.IDDOMICILIO, Dom.CALLE, Dom.NUMEXT, Dom.NUMINT, (Int32.Parse(Dom.IDESTADO) > 0 ? (Int32?)Int32.Parse(Dom.IDESTADO) : null), Dom.ESTADO, (Int32.Parse(Dom.IDMUNICIPIO) > 0 ? (Int32?)Int32.Parse(Dom.IDMUNICIPIO) : null), Dom.MUNICIPIO, (Int32.Parse(Dom.IDCOLONIA) > 0 ? (Int32?)Int32.Parse(Dom.IDCOLONIA) : null), Dom.COLONIA, Dom.CP, App, (Reglas.IDUSRMODIF > 0 ? (Int64?)Reglas.IDUSRMODIF : null), App); } else { dboSegLatino.sp_insDomicilio(Usuario.IDUSUARIO, Dom.CALLE, Dom.NUMEXT, Dom.NUMINT, (Int32.Parse(Dom.IDESTADO) > 0 ? (Int32?)Int32.Parse(Dom.IDESTADO) : null), Dom.ESTADO, (Int32.Parse(Dom.IDMUNICIPIO) > 0 ? (Int32?)Int32.Parse(Dom.IDMUNICIPIO) : null), Dom.MUNICIPIO, (Int32.Parse(Dom.IDCOLONIA) > 0 ? (Int32?)Int32.Parse(Dom.IDCOLONIA) : null), Dom.COLONIA, Dom.CP, DateTime.Now, true, App, (Reglas.IDUSRMODIF > 0 ? (Int64?)Reglas.IDUSRMODIF : null), App); } } } ////Insertamos sus Contactos if (Contactos != null) { foreach (ContactoBE Contacto in Contactos) { if (Contacto.IDCONTACTO > 0) { dboSegLatino.sp_updContacto(Usuario.IDUSUARIO, Contacto.IDCONTACTO, Contacto.IDTIPOCONTACTO, Contacto.VALOR, Contacto.ACTIVO, App, (Reglas.IDUSRMODIF > 0 ? (Int64?)Reglas.IDUSRMODIF : null), App); } else { dboSegLatino.sp_insContacto(Usuario.IDUSUARIO, Contacto.IDTIPOCONTACTO, Contacto.VALOR, DateTime.Now, true, App, (Reglas.IDUSRMODIF > 0 ? (Int64?)Reglas.IDUSRMODIF : null), App); } } } ////Insertamos Aplicaciones X Usuario //if (Usuario.IDAPLICACION == 0) //{ foreach (var Rol in RolesXUsuario) { dboSegLatino.spAddUsuarioXAplicacion(long.Parse(Rol.IDAPLICACION), Usuario.IDUSUARIO, true); } //} if (RolesXUsuario != null) { foreach (RolesXUsuarioBE Rol in RolesXUsuario) { dboSegLatino.sp_insRolXUserApp(Rol.IDROL, Usuario.IDUSUARIO, (Rol.IDESTACIONXAPP > 0 ? (Int64?)Rol.IDESTACIONXAPP : null), (Rol.IDROLXUSUARIO > 0 ? (Int64?)Rol.IDROLXUSUARIO : null), Rol.ACTIVO); } } //Verificar Actualizacion de Apliacion X Usuario scopeGrl.Commit(); } return(bFlag); } catch (Exception ex) { scopeGrl.Rollback(); StackTrace st = new StackTrace(true); CommonDA ComunDA = new CommonDA(); ComunDA.insErrorDB("Error: " + ex.Message + " En El Metodo: " + MethodBase.GetCurrentMethod().Name, st, "", App.ToString()); throw new Exception(ex.Message); } finally { scopeGrl.Dispose(); dboSegLatino.Connection.Close(); dboSegLatino.Connection.Dispose(); } }