foreach (var item in lst) { SortedList.Add(item); string output = item.AFFICHAGE.ToString().Split('(', ')')[1]; lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE1.ToString().Equals(output) && x.CODE0.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList(); if (int.Parse(item.NIVEAU.ToString()) == 0) { lst = Source.Where(x => x.CODE0 != null && string.IsNullOrEmpty(x.CODE2.ToString()) && string.IsNullOrEmpty(x.CODE1.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString())).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 2) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && !string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE2.ToString().Equals(output) && x.CODE1.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE4.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE4.ToString()) && !string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE2.ToString().Equals(output) && x.CODE1.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 3) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(code0) && x.CODE3.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE5.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE5.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(code0) && x.CODE3.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 4) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE6.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE6.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 5) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE7.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE7.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 6) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE8.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE8.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 7) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE9.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE9.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 8) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE8.ToString()) && x.CODE8.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE10.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE10.ToString()) && string.IsNullOrEmpty(x.CODE9.ToString()) && string.IsNullOrEmpty(x.CODE8.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 9) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE11.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE11.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 10) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE12.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE12.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 11) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE13.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE13.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 12) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE14.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE14.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 13) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE14.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE14.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 14) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE16.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE16.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 15) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE9.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE17.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE17.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE8.ToString()) && x.CODE8.ToString().Equals(item.CODE9.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); } if (int.Parse(item.NIVEAU.ToString()) == 16) { lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(item.CODE15.ToString()) && x.CODE16.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE18.ToString())) != null) lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE18.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(item.CODE15.ToString()) && x.CODE16.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList(); } if (lst.Count() != 0 && lst != null) { if (lst.Count() > 1 || int.Parse(lst.FirstOrDefault().NIVEAU.ToString()) <= max) { lst = SortList_(SortedList, Source, lst, max, output); } else { if (lst.Count() != 0 && lst != null) SortedList.AddRange(lst); } } }
for(int i=0;i<= int.Parse(item.NIVEAU.ToString()); i++) { var test = lst.Where(x => x == item).ToList(); lst=Source.AsDataTable().AsEnumerable().Where(x => x.Field<object>("CODE"+i).Equal()) }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)