public static List<string> FilterResult(Filtrare newFiltrare) { var numeRegiune = newFiltrare.numeRegiune; var numeLocalitate = newFiltrare.numeLocalitate; var tipUnitate = newFiltrare.tipUnitate; List<string> unitati = new List<string>(); try { using (MasterEntities context = new MasterEntities()) { //caz 1:toate optiunile sunt bifate //if(numeRegiune!="" && numeLocalitate!="" && tipUnitate!="" && newFiltrare.pretDeLa) var unitatiList = context.Unitati.Where(x => x.TipUnitate.tip == tipUnitate); Regiuni result=new Regiuni(); if (newFiltrare.numeRegiune != "Alegeti o regiune") { if (newFiltrare.numeLocalitate != "Alegeti o localitate") { result = context.Regiuni.First(x => x.numeRegiune == numeRegiune); var result1 = result.Localitati.First(x => x.numeLocalitate == numeLocalitate); var result2 = result1.Unitate.Where(x => x.TipUnitate.tip == tipUnitate); PopulateUnitatiList(result2, newFiltrare, unitati); } else { var result1 = context.Regiuni.First(x => x.numeRegiune == numeRegiune).Localitati.Where(x=>x.idLocalitate>=0); foreach (var item in result1) { var result2 = item.Unitate.Where(x => x.TipUnitate.tip == tipUnitate); PopulateUnitatiList(result2, newFiltrare, unitati); } } } else { PopulateUnitatiList(unitatiList, newFiltrare, unitati); } } } catch (Exception ex) { } return unitati; }
public static void PopulateUnitatiList(IEnumerable<Unitati> unitatiList, Filtrare newFiltrare, List<string> unitati) { foreach (var item in unitatiList) { if (newFiltrare.pretDeLa.ToString() != String.Empty) { var result3 = item.Cameres.Where(x => (x.pret >= newFiltrare.pretDeLa)); if (newFiltrare.pretPanaLa.ToString() != String.Empty) { result3 = item.Cameres.Where(x => (x.pret <= newFiltrare.pretPanaLa)); } if (result3 != null) { AddUnitate(unitati, item); } } else { AddUnitate(unitati, item); } } }