Пример #1
0
 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;
     }
 }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
        }