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));
        }
Exemplo n.º 2
0
 public ComparationView()
 {
     InitializeComponent();
     DataContext = new ComparationViewModel();
 }