示例#1
0
 /// <summary>
 /// modifica un administrativo pasado como parametro
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public async Task ModificarAdministrativo(Administrativo usuario, string id) 
 {
     try
     {
         if (usuario != null && id!=null)
         {
             usuario.Id = new ObjectId(id);
             if (usuario.Ubicacion == null)
             {
                 usuario.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             usuario = usuario.Encriptar(usuario);
             await DBRepositoryMongo<Usuario>.UpdateAsync(usuario.Id, usuario, "Administrativos");
         }
         else
         {
             throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
         }
        
     }
     catch(MensajeException msg)
     {
         throw msg;
     }
     catch (Exception ex)
     {
         throw ex;
     }
    
 }
示例#2
0
        /// <summary>
        /// DEVUELVE LOS ADMINISTRATIVOS DEL SISTEMA
        /// DEJA POR FUERA UN USUARIO "SUPER" PARA QUE NO PUEDA SER MODIFICADO
        /// </summary>
        /// <returns>LISTA DE ADMINISTRATIVOS</returns>
        public async Task<List<Administrativo>> getAdministrativos()
        {
            try
            {
                var items = await DBRepositoryMongo<Administrativo>.GetItemsAsync("Administrativos");
                List<Administrativo> aux = items.ToList();
                List<Administrativo> salida = new List<Administrativo>();
                Administrativo admin = null;

                foreach (Administrativo a in aux)
                {
                    admin = a.Desencriptar(a);
                    salida.Add(admin);
                }
                Administrativo eliminar = null;
                foreach (Administrativo a in salida)
                {
                    if (a.User.Equals("super"))
                    {
                        eliminar = a;
                    }
                }
                salida.Remove(eliminar);
                return salida;
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception)
            {
                throw new MensajeException("Se produjo un error inesperado, intente de nuevo mas tarde");
            }
           
        }
示例#3
0
 /// <summary>
 /// DEVUELVE EL ADMINISTRATIVO CON EL SOLICITADO
 /// </summary>
 /// <param name="id"></param>
 /// <returns>ADMINISTRATIVO</returns>
 public async Task<Administrativo>getAdministrativo(string id)
 {
     Administrativo administrativo = null;
     if (id == null)
     {
         throw new MensajeException("Id de usuario inexistente");
     }
     else
     {
         administrativo = await DBRepositoryMongo<Administrativo>.GetItemAsync(id, "Administrativos");
         administrativo = administrativo.Desencriptar(administrativo);
         return administrativo;
     }
 }
 /// <summary>
 /// recibe un usuario encriptado y lo devuelve desencriptado
 /// </summary>
 /// <param name="usuario"></param>
 /// <returns>usuario desencriptado</returns>
 public Administrativo Desencriptar(Administrativo usuario)
 {
     usuario.Apellido           = Seguridad.Desencriptar(usuario.Apellido);
     usuario.Direccion          = Seguridad.Desencriptar(usuario.Direccion);
     usuario.Documento          = Seguridad.Desencriptar(usuario.Documento);
     usuario.Email              = Seguridad.Desencriptar(usuario.Email);
     usuario.FNacimiento        = Seguridad.Desencriptar(usuario.FNacimiento);
     usuario.Nombre             = Seguridad.Desencriptar(usuario.Nombre);
     usuario.Password           = Seguridad.Desencriptar(usuario.Password);
     usuario.Telefono           = Seguridad.Desencriptar(usuario.Telefono);
     usuario.Tipo               = Seguridad.Desencriptar(usuario.Tipo);
     usuario.User               = Seguridad.Desencriptar(usuario.User);
     usuario.Ubicacion.Latitud  = Seguridad.Desencriptar(usuario.Ubicacion.Latitud);
     usuario.Ubicacion.Longitud = Seguridad.Desencriptar(usuario.Ubicacion.Longitud);
     return(usuario);
 }
示例#5
0
        /// <summary>
        /// devuelve el administrativo o el cliente si lo puede validar o si no devuelve null
        /// </summary>
        /// <param name="administrativo"></param>
        /// <param name="pass"></param>
        /// <returns>el administrativo o cliente con las credenciales solicitadas</returns>
        public async Task<Usuario> Login(string administrativo, string pass)
        {
            MensajeException mensajeError = new MensajeException("Usuario y/o contraseña incorrecta");
            Usuario salida = null;
            try
            {
                Administrativo user = await DBRepositoryMongo<Administrativo>.Login(Seguridad.Encriptar(administrativo), "Administrativos");
                if (user == null)
                {
                    Cliente cliente = await DBRepositoryMongo<Cliente>.Login(Seguridad.Encriptar(administrativo), "Clientes");
                    if (cliente != null)
                    {
                        cliente = cliente.Desencriptar(cliente);
                        if (cliente.Password == pass)
                        {
                            salida = cliente; 
                        }
                        else
                        {
                            throw mensajeError;
                        }
                    }
                    else
                    {
                        throw new MensajeException("Usuario incorrecto");
                    }
                }
                else
                {
                    user = user.Desencriptar(user);
                    if (user.Password == pass)
                    {
                        salida = user;
                    }
                    else
                    {
                        throw mensajeError;
                    }
                }
                return salida;

            }catch(MensajeException msg)
            {
                throw msg;
            }
        }
示例#6
0
 /// <summary>
 /// crea un usuario administrativo
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="administrador"></param>
 /// <returns>el administrativo creado</returns>
 public async Task<Usuario> CrearAdministrativo(Administrativo usuario, bool administrador)
 {
     try
     {
         Usuario salida = null;
         Usuario u = await DBRepositoryMongo<Usuario>.GetUsuario(Seguridad.Encriptar(usuario.User), "Administrativos");
         if (u != null)
         {
             throw new MensajeException("El usuario ya existe");
         }
         else
         {
             if (usuario.Ubicacion == null)
             {
                 usuario.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             Administrativo nuevo = new Administrativo();
             nuevo = usuario;
             nuevo.Tipo = "Administrador";
             if (administrador)
             {
                 nuevo.Administrador = true;
             }
             else
             {
                 nuevo.Administrador = false;
             }
             nuevo = nuevo.Encriptar(nuevo);
             await DBRepositoryMongo<Usuario>.Create(nuevo, "Administrativos");
             salida = nuevo;
         }
         return salida;
     }
     catch (MensajeException msg)
     {
         throw msg;
     }
     catch(Exception ex)
     {
         throw ex;
     }
 }
示例#7
0
 /// <summary>
 /// elimna el administrativo pasado como parametro
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public async Task EliminarAdministrativo(Administrativo usuario, string id)
 {
     try
     {
         if(usuario !=null && id != null)
         {
             await DBRepositoryMongo<Usuario>.DeleteAsync(id, "Administrativos");
         }
         else
         {
             throw new MensajeException("Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
         }
       
     }
     catch(MensajeException msg)
     {
         throw msg;
     }
     catch(Exception ex)
     {
         throw ex;
     }
     
 }