public override void Buscar() { try { Cursor.Current = Cursors.WaitCursor; using (var crit = new ErickOrlando.Utilidades.Data.FiltroCriteria()) { crit.NombreCampo = CriterioBusqueda; crit.ValorBusqueda = txtFiltro.Text; //Aplicar los Filtros recursosInfoListBindingSource.DataSource = RecursosInfoList.GetRecursosInfoList(crit); } } catch (DataPortalException ex) { XtraMessageBox.Show(ex.BusinessException.Message, "Buscar", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Buscar", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { Cursor.Current = Cursors.Default; } }
public override void Actualizar() { base.Actualizar(); try { Cursor.Current = Cursors.WaitCursor; tipoSistemaInfoListBindingSource.DataSource = TipoSistemaInfoList.GetTipoSistemaInfoList(); RecursosInfoList.BeginGetRecursosInfoList((s, e) => { if (e.Error != null) { throw e.Error; } ListaRecursos = e.Object; this.Invoke(new Action(SetDataSource)); }); } catch (Exception ex) { XtraMessageBox.Show( ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { Cursor.Current = Cursors.Default; } }
public static ResponseUsuarioInsert InsertUsuario(RequestDTOUsuarioInsert request) { ResponseUsuarioInsert result = new ResponseUsuarioInsert(); var perfil = ErickOrlando.Seguridad.Negocio.Editables.PerfilUsuario.NewPerfilUsuario(); var usuario = Usuario.NewUsuario(); try { if (String.IsNullOrEmpty(request.Codigo)) { return(result); } string IdAplicacion = string.Empty; string IdEmpresa = string.Empty; string IdEmpresaPertenencia = string.Empty; string IdRol = string.Empty; string IdCargo = string.Empty; using (var ctx = new SeguridadEntities()) { // Buscamos el ID de la Aplicacion. IdAplicacion = (from app in ctx.Aplicaciones where app.Acronimo == request.Acronimo select app.IdAplicacion).SingleOrDefault(); if (string.IsNullOrEmpty(IdAplicacion)) { throw new ApplicationException(string.Format("La Aplicación {0} no existe!", request.Acronimo)); } // Buscamos el ID de la Empresa. IdEmpresa = (from emp in ctx.Empresas where emp.RUC == request.RUCEmpresa select emp.IdEmpresa).SingleOrDefault(); if (string.IsNullOrEmpty(IdEmpresa)) { throw new ApplicationException(string.Format("La Empresa con el RUC {0} no existe!", request.RUCEmpresa)); } if (request.RUCEmpresa != request.RUCEmpresaPertenencia) { // Buscamos el ID de la Empresa Pertenencia. IdEmpresaPertenencia = (from emp in ctx.Empresas where emp.RUC == request.RUCEmpresaPertenencia select emp.IdEmpresa).SingleOrDefault(); if (string.IsNullOrEmpty(IdEmpresaPertenencia)) { throw new ApplicationException(string.Format("La Empresa con el RUC {0} no existe!", request.RUCEmpresaPertenencia)); } } else { IdEmpresaPertenencia = IdEmpresa; } // Buscamos el ID del Rol. IdRol = (from roles in ctx.Roles where roles.IdAplicacion == IdAplicacion && roles.NombreRol == request.Rol select roles.IdRol).SingleOrDefault(); if (string.IsNullOrEmpty(IdRol)) { throw new ApplicationException(string.Format("No se encuentra el Rol {0}", request.Rol)); } // Buscamos el ID del Cargo. IdCargo = (from cargo in ctx.Cargo where cargo.Descripcion == request.Cargo select cargo.IdCargo).SingleOrDefault(); if (string.IsNullOrEmpty(IdCargo)) { throw new ApplicationException(string.Format("No se encuentra el cargo {0}", request.Cargo)); } ctx.Database.Connection.Close(); } //Creacion de nuevo usuario usuario.IdEmpresa = IdEmpresa; usuario.IdEmpresaPertenencia = IdEmpresaPertenencia; usuario.IdCargo = IdCargo; usuario.Nombres = request.Nombres; usuario.Alias = request.Alias; usuario.Dominio = request.Dominio; usuario.ApellidoMaterno = request.ApellidoMaterno; usuario.ApellidoPaterno = request.ApellidoPaterno; usuario.Codigo = request.Codigo; usuario.Correo = request.Correo; usuario.DNI = request.DNI; usuario.Estado = true; usuario.NotificarConCorreo = request.NotificacionConCorreo; usuario.Tipo = request.Tipo; usuario = usuario.Save(); //Recuperando usuario creado var usuarioCreado = usuario; //Estableciendo variables de entorno Csla.ApplicationContext.GlobalContext["Placa"] = Environment.MachineName; Csla.ApplicationContext.GlobalContext["Usuario"] = Environment.UserName; //Creacion de perfil perfil.IdAplicacion = IdAplicacion; perfil.IdUsuario = usuarioCreado.Id; perfil.Usuario = usuarioCreado.Nombres; perfil.Aplicacion = IdAplicacion; perfil.Caduca = request.Caduca; perfil.VigenciaInicio = DateTime.Now; perfil.VigenciaFin = DateTime.Now.AddYears(1); //Asignando rol var rolPerfil = perfil.RolesPerfiles.AddNew(); rolPerfil.IdRol = IdRol; rolPerfil.IdAplicacion = IdAplicacion; //Agregando permisos rolPerfil.AgregarPermisos(); //Estableciendo recursos var recursosList = RecursosInfoList.GetRecursosInfoList(); if (request.ListaRecursos != null) { foreach (var recurso in request.ListaRecursos) { string recursoact = recurso.Substring(0, recurso.IndexOf(":")).Trim(); string[] recursodetalle = recurso.Substring(recurso.IndexOf(":") + 1).Trim().Split(','); foreach (var itemrecurso in recursosList.Where(x => x.Descripcion == recursoact)) { var recursodetalles = from p in itemrecurso.Detalles where recursodetalle.Contains(p.Descripcion) select p; foreach (var itemrecursodetalle in recursodetalles) { var recursoitem = perfil.Recursos.AddNew(); recursoitem.Conceder = true; recursoitem.IdRecursoDetalle = itemrecursodetalle.ID; perfil.Recursos.Add(recursoitem); } } } } perfil.Save(); string Clave = string.Empty; if (usuario.Tipo == "E") { //Creacion de contraseña if (String.IsNullOrEmpty(request.Clave)) { Clave = GenerarClaveAleatoria(); } else { var crypto = new SimpleInteroperableEncryption(); Clave = crypto.Decrypt(request.Clave); } //Hay que intentar el Login para identificar si se debe crear la contraseña. try { Csla.ApplicationContext.GlobalContext["Acronimo"] = request.Acronimo; GRPrincipal.Load(usuario.Codigo, usuario.Dominio); //GRPrincipal.Login(usuario.Codigo, GRCrypto.Encriptar( "clave")); } catch (DataPortalException ex) { if (ex.BusinessException.GetType() == typeof(UsuarioNoActivoException) || ex.BusinessException.GetType() == typeof(UsuarioSinClaveException)) { var activacion = ActivarUsuario.GetActivarUsuario(new FiltroUsuarios { Usuario = usuario.Codigo, Dominio = usuario.Dominio }); activacion.NombreUsuario = request.Codigo; activacion.PreguntaSecreta = request.PreguntaSecreta; activacion.RespuestaSecreta = request.RespuestaSecreta; activacion.ClaveSecreta = Clave; activacion.ConfirmarClave = Clave; try { activacion.Save(); } catch (ValidationException) { throw new InvalidOperationException(activacion.BrokenRulesCollection.ToString()); } } } } result.IdUsuario = usuarioCreado.Id; result.Clave = (string.IsNullOrEmpty(request.Clave)) ? Clave : string.Empty; result.Codigo = request.Codigo; result.Alias = request.Alias; result.Resultado.Success = true; result.Resultado.Message = string.Empty; } catch (ValidationException) { var msg1 = usuario.BrokenRulesCollection.ToString(); var msg2 = perfil.BrokenRulesCollection.ToString(); if (string.IsNullOrEmpty(msg1)) { result.Resultado.Message = msg2; } else if (string.IsNullOrEmpty(msg2)) { result.Resultado.Message = msg1; } else { result.Resultado.Message = string.Format("{0} {1}", msg1, msg2); } } catch (DataPortalException ex) { result.Resultado.Message = ex.BusinessException.Message; if (ex.BusinessException.InnerException != null) { result.Resultado.Messages.Add(new Result { Message = ex.BusinessException.InnerException.Message }); } } catch (Exception ex) { var msg = ex.Message; if (ex.InnerException != null) { msg = ex.InnerException.Message; } result.Resultado.Message = msg; } return(result); }