/// <summary> /// Obtiene una lista de todos los usuarios ordenados por un comparador /// </summary> /// <param name="pCadena">Nombre comparador</param> /// <returns>Lista de diccionario de usuarios con sus respectivos datos ordenados segun el comparador.</returns> public IList <Dictionary <string, string> > obtenerOrdenadosPor(string pComparador) { IList <Dictionary <string, string> > listaUsuarios = new List <Dictionary <string, string> > { }; IComparer <Usuario> comparador; switch (pComparador) { case "NombreDescendente": { comparador = new OrdenarPorNombreDesc(); break; } case "CorreoDescendente": { comparador = new OrdenarPorCorreoElectronicoDesc(); break; } default: { comparador = new OrdenarPorNombreAsc(); break; } } foreach (Usuario usua in repositorio.ObtenerOrdenadosPor(comparador)) { Dictionary <string, string> usuarioDiccionario = new Dictionary <string, string> { }; usuarioDiccionario.Add("Codigo", usua.Codigo); usuarioDiccionario.Add("NombreYApellido", usua.NombreCompleto); usuarioDiccionario.Add("CorreoElectronico", usua.CorreoElectronico); listaUsuarios.Add(usuarioDiccionario); } return(listaUsuarios); }