En este caso se están concatenando 2 listas en una tercera lista y ordenando por el campo RazonSocial
public IList GetEstacionesByIdZonaGeografica(string idZonaGeografica)
{
BpCrud<Estaciones> pbCrudEstaciones = new BpCrud<Estaciones>();
BpCrud<ZonaGeograficaEstaciones> bpCrudZonaGeograficaEstaciones = new BpCrud<ZonaGeograficaEstaciones>();
IList<Estaciones> listaEstaciones;
IList<ZonaGeograficaEstaciones> listaZonaGeograficaEstaciones;
listaEstaciones = pbCrudEstaciones.BM.List();
listaZonaGeograficaEstaciones = bpCrudZonaGeograficaEstaciones.BM.List();
//concatena las dos listas
var estacionInfo =
(
//estaciones no asociadas a ninguna zona geografica
from le in listaEstaciones
where le.ZonaGeograficaEstacionesList.Count == 0
select new
{
IdZonaGeografica = "0",
RazonSocial = le.Razonsocial,
Acceso = 0,
ZonaGeografica = "sin zona asociada",
Pbl = le.Pbl,
AddUser = 0,
AddDate = (DateTime?) DateTime.MinValue
}
)
.Concat
(
//estaciones asociadas a la zona geografica
from lzge in listaZonaGeograficaEstaciones
where lzge.ZonaGeografica.Zona == idZonaGeografica
select new
{
IdZonaGeografica = lzge.ZonaGeografica.Zona,
RazonSocial = lzge.Estaciones.Razonsocial,
Acceso = 1,
ZonaGeografica = lzge.ZonaGeografica.Descripcion,
Pbl = lzge.Estaciones.Pbl,
AddUser = lzge.Adduser,
AddDate = lzge.Adddate
}
).OrderBy(q => q.RazonSocial);
return estacionInfo.ToList();
}
No hay comentarios:
Publicar un comentario