public ActionResult Comparation() { List <Item> itemsToCompare = new List <Item>(); if (Session["comparation"] == null) { return(View()); } itemsToCompare = (List <Item>)(Session["comparation"]); if (itemsToCompare.Count() <= 0) { return(View()); } List <string> featuresList = new List <string>(); List <ComparationViewModel> comparation = new List <ComparationViewModel>(); foreach (var oneItem in itemsToCompare) { List <string> tempFeature = db.FeatureValueOfItems.Where(item => item.Item_idItem1 == oneItem.idItem).Select(feature => feature.Feature.feature1).ToList(); if (tempFeature != null) { if (tempFeature.Count() > 0) { foreach (var feature in tempFeature) { if (!featuresList.Contains(feature)) { featuresList.Add(feature); } } } } } foreach (var oneItem in itemsToCompare) { ComparationViewModel newComparationItem = new ComparationViewModel(); newComparationItem.ComparationItem = oneItem; newComparationItem.FeaturesList = new List <Tuple <string, List <string> > >(); foreach (var feature in featuresList) { List <string> featureValue = (db.FeatureValueOfItems.Where(item => item.Item_idItem1 == oneItem.idItem).Where(feat => feat.Feature.feature1 == feature).Count() > 0) ? db.FeatureValueOfItems.Where(item => item.Item_idItem1 == oneItem.idItem).Where(feat => feat.Feature.feature1 == feature).Select(val => val.FeatureValue.featureValue1).ToList() : null; Tuple <string, List <string> > newFeatureRow = new Tuple <string, List <string> >(feature, featureValue); newComparationItem.FeaturesList.Add(newFeatureRow); } comparation.Add(newComparationItem); } return(View(comparation)); }
public ComparationView() { InitializeComponent(); DataContext = new ComparationViewModel(); }