Mantenimiento de Usuarios en XML con C#: Alta, Baja, Consulta y Modificación

Informática3,78 KB

Mantenimiento de usuarios en XML con C#

A continuación se muestra el código de una clase MantenimientoXML que implementa las operaciones básicas de gestión de usuarios (alta, baja, consulta y modificación) sobre un documento XML, junto con una prueba unitaria.

Búsqueda del usuario con LINQ to XML

var usuarioxml = (from usu in datos.DocumentoXML.Elements("Usuarios").Elements("Usuario")
where usu.Attribute("Clave").Value.Equals(clave)
select usu).SingleOrDefault();

Clase MantenimientoXML

public class MantenimientoXML : IMantenimiento
{
private ProcesosXML _procesos;

public MantenimientoXML(string filename)
{
_procesos = new ProcesosXML(filename);
}

public IProcesos Proceso
{
get { return Proceso; }
set { _procesos = value as ProcesosXML; }
}

public bool Alta(IElemento elemento)
{
DataSourceXML datos = _procesos.Datos as DataSourceXML;

// Compruebo si existe el usuario
if (usuarioxml != null)
return false;

Usuario nuevo = elemento as Usuario;
XElement nuevoUsu = new XElement("Usuario",
new XAttribute("Clave", nuevo.Clave),
new XElement("Nombre", nuevo.Nombre),
new XElement("Edad", nuevo.Edad));

var usuarios = (from usu in datos.DocumentoXML.Elements("Usuarios")
select usu).SingleOrDefault();
usuarios.Add(nuevoUsu);
datos.GuardarDatos();
return true;
}

public bool Baja(string clave)
{
DataSourceXML datos = _procesos.Datos as DataSourceXML;

// Compruebo si existe el usuario
if (usuarioxml == null)
return false;

usuarioxml.Remove();
datos.GuardarDatos();
return true;
}

Consulta de un usuario

    public IElemento Consulta(string clave)
{
DataSourceXML datos = _procesos.Datos as DataSourceXML;

// Compruebo si existe el usuario
if (usuarioxml == null)
return null;

string nombre = usuarioxml.Element("Nombre").Value;
int edad = Int32.Parse(usuarioxml.Element("Edad").Value);
IElemento elemento = new Usuario(clave, nombre, edad);
return elemento;
}

public bool Modificacion(IElemento elemento)
{
DataSourceXML datos = _procesos.Datos as DataSourceXML;

// Compruebo si existe el usuario
if (usuarioxml == null)
return false;

Usuario usuario = elemento as Usuario;
usuarioxml.SetElementValue("Nombre", usuario.Nombre);
usuarioxml.SetElementValue("Edad", usuario.Edad);
datos.GuardarDatos();
return true;
}
}

Prueba unitaria

[TestMethod]
public void BajaUsuarioTest()
{
IMantenimiento datos = new MantenimientoXML("Usuarios.xml");
Assert.IsTrue(datos.Baja("1234J"));
}

Descargar

PDF Word HTML