Exemple #1
0
        void update_category_mapping(int[] product_ids)
        {
            foreach (int pi in product_ids)
            {
                Product product1 = Products.Get(pi);
                if (product1.DbProduct.LinkId == null || product1.DbProduct.LinkId < 0)
                {
                    continue;
                }
                var p1_category_ps   = Db.Products.Where(p => p.Category == product1.DbProduct.Category && p.Id != pi).ToList();
                var p1_old_linked_ps = (from x in Db.Products where x.LinkId == product1.DbProduct.LinkId && !product_ids.Contains(x.Id) select x).ToList();
                foreach (Fhr.ProductOffice.Models.Product p1_old_linked_p in p1_old_linked_ps)
                {
                    if (null == (from x in p1_category_ps join y in Db.Products.Where(p => p.Category == p1_old_linked_p.Category && p.Id != p1_old_linked_p.Id) on x.LinkId equals y.LinkId select y).FirstOrDefault())
                    {
                        //remove mapping
                        CompanyPairs.UnmapCategoriesAndSave(product1, Products.Get(p1_old_linked_p.Id));
                    }
                }
            }

            for (int i = 0; i < product_ids.Length; i++)
            {
                for (int j = i + 1; j < product_ids.Length; j++)
                {
                    Product p1 = Products.Get(product_ids[i]);
                    Product p2 = Products.Get(product_ids[j]);
                    CompanyPairs.MapCategoriesAndSave(p1, p2);
                }
            }
        }