예제 #1
0
        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();
            }
        }