/// <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; } }
/// <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"); } }
/// <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); }
/// <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; } }
/// <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; } }
/// <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; } }