Exemple #1
0
 protected void OptionsGrid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "MoveUp" || e.CommandName == "MoveDown" || e.CommandName == "DoDelete")
     {
         int optionId = AlwaysConvert.ToInt(e.CommandArgument);
         IList <ProductOption> prodOpts = _Product.ProductOptions;
         Option        option           = OptionDataSource.Load(optionId);
         ProductOption porductOption    = ProductOptionDataSource.Load(_Product, option);
         int           itemIndex        = prodOpts.IndexOf(porductOption);
         ProductOption selectedItem;
         if (e.CommandName == "MoveUp")
         {
             if ((itemIndex < 1) || (itemIndex > (prodOpts.Count - 1)))
             {
                 return;
             }
             selectedItem              = prodOpts[itemIndex];
             prodOpts[itemIndex]       = prodOpts[(itemIndex - 1)];
             prodOpts[(itemIndex - 1)] = selectedItem;
         }
         else if (e.CommandName == "MoveDown")
         {
             if ((itemIndex > (prodOpts.Count - 2)) || (itemIndex < 0))
             {
                 return;
             }
             selectedItem              = prodOpts[itemIndex];
             prodOpts[itemIndex]       = prodOpts[(itemIndex + 1)];
             prodOpts[(itemIndex + 1)] = selectedItem;
         }
         else if (e.CommandName == "DoDelete")
         {
             //DELETE THE PRODUCT - OPTION ASSOCIATION
             if (itemIndex >= 0)
             {
                 prodOpts.DeleteAt(itemIndex);
             }
         }
         //UPDATE THE DISPLAY ORDER
         for (short i = 0; i < prodOpts.Count; i++)
         {
             prodOpts[i].OrderBy = i;
         }
         prodOpts.Save();
         _Options = _Product.GetOptions();
         _Product.Save();
         DoAdjustVariants();
         BindOptionsGrid();
     }
 }
Exemple #2
0
        protected void DoAdjustVariants()
        {
            IList <ProductOption>  productOptions = ProductOptionDataSource.LoadForProduct(_ProductId);
            List <Option>          options        = (from o in productOptions orderby o.OrderBy select o.Option).ToList <Option>();
            IList <ProductVariant> variants       = ProductVariantDataSource.LoadForProduct(_ProductId);

            foreach (ProductVariant variant in variants)
            {
                Option o1 = FindOptionWithChoice(options, variant.Option1);
                Option o2 = FindOptionWithChoice(options, variant.Option2);
                Option o3 = FindOptionWithChoice(options, variant.Option3);
                Option o4 = FindOptionWithChoice(options, variant.Option4);
                Option o5 = FindOptionWithChoice(options, variant.Option5);
                Option o6 = FindOptionWithChoice(options, variant.Option6);
                Option o7 = FindOptionWithChoice(options, variant.Option7);
                Option o8 = FindOptionWithChoice(options, variant.Option8);

                Dictionary <int, int> map = new Dictionary <int, int>();
                if (o1 != null)
                {
                    map.Add(o1.Id, variant.Option1);
                }
                if (o2 != null)
                {
                    map.Add(o2.Id, variant.Option2);
                }
                if (o3 != null)
                {
                    map.Add(o3.Id, variant.Option3);
                }
                if (o4 != null)
                {
                    map.Add(o4.Id, variant.Option4);
                }
                if (o5 != null)
                {
                    map.Add(o5.Id, variant.Option5);
                }
                if (o6 != null)
                {
                    map.Add(o6.Id, variant.Option6);
                }
                if (o7 != null)
                {
                    map.Add(o7.Id, variant.Option7);
                }
                if (o8 != null)
                {
                    map.Add(o8.Id, variant.Option8);
                }

                if (variant.Option1 > 0)
                {
                    variant.Option1 = map[options[0].Id];
                }
                if (variant.Option2 > 0)
                {
                    variant.Option2 = map[options[1].Id];
                }
                if (variant.Option3 > 0)
                {
                    variant.Option3 = map[options[2].Id];
                }
                if (variant.Option4 > 0)
                {
                    variant.Option4 = map[options[3].Id];
                }
                if (variant.Option5 > 0)
                {
                    variant.Option5 = map[options[4].Id];
                }
                if (variant.Option6 > 0)
                {
                    variant.Option6 = map[options[5].Id];
                }
                if (variant.Option7 > 0)
                {
                    variant.Option7 = map[options[6].Id];
                }
                if (variant.Option8 > 0)
                {
                    variant.Option8 = map[options[7].Id];
                }
                variant.Save();
            }
        }