public decimal GetWeightAdjustmentForSelections(OptionList allOptions)
        {
            decimal result = 0;

            foreach (OptionSelection selection in this)
            {
                foreach (Option opt in allOptions)
                {
                    if (opt.Items != null)
                    {
                        foreach (OptionItem oi in opt.Items)
                        {
                            string cleaned = OptionSelection.CleanBvin(oi.Bvin);
                            if (cleaned == selection.SelectionData)
                            {
                                if (oi.WeightAdjustment != 0)
                                {
                                    result += oi.WeightAdjustment;
                                }
                            }
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public static bool ContainsInvalidSelectionForOptions(OptionList options, List <OptionSelection> selections)
        {
            // Checks to see if a list of selection data contains a selection
            // that isn't a valid variant in a list of options

            bool result = false;

            foreach (OptionSelection sel in selections)
            {
                if (!options.ContainsVariantSelection(sel))
                {
                    return(true);
                }
            }

            return(result);
        }
Exemplo n.º 3
0
        public void MergeList(string productBvin, OptionList subitems)
        {
            long storeId = context.CurrentStore.Id;

            // Set Base Key Field
            foreach (Option item in subitems)
            {
                item.StoreId = storeId;
            }

            // Create or Update
            foreach (Option itemnew in subitems)
            {
                if (itemnew.Bvin == string.Empty)
                {
                    Create(itemnew);
                    optionCrosses.AddOptionToProduct(productBvin, itemnew.Bvin);
                }
                else
                {
                    Update(itemnew);
                }
            }

            // Delete missing
            List <Option> existing = FindByProductId(productBvin);

            foreach (Option ex in existing)
            {
                var count = (from sub in subitems
                             where sub.Bvin == ex.Bvin
                             select sub).Count();
                if (count < 1)
                {
                    optionCrosses.RemoveOptionFromProduct(productBvin, ex.Bvin);
                    if (ex.IsShared == false)
                    {
                        Delete(ex.Bvin);
                    }
                }
            }
        }
Exemplo n.º 4
0
        public List <OptionSelectionList> VariantsGenerateAllPossibleSelections(OptionList options)
        {
            List <OptionSelectionList> data = new List <OptionSelectionList>();

            List <Option> variantOptions = options.VariantsOnly();

            if (variantOptions == null)
            {
                return(data);
            }
            if (variantOptions.Count < 1)
            {
                return(data);
            }

            OptionSelectionList selections = new OptionSelectionList();

            GenerateVariantSelections(data, variantOptions, 0, selections);

            return(data);
        }
Exemplo n.º 5
0
        public Variant FindBySelectionData(OptionSelectionList selections, OptionList options)
        {
            OptionSelectionList variantSelections = new OptionSelectionList();

            foreach (Option opt in options)
            {
                if (opt.IsVariant)
                {
                    OptionSelection sel = selections.FindByOptionId(opt.Bvin);
                    if (sel != null)
                    {
                        variantSelections.Add(sel);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            string selectionKey = OptionSelection.GenerateUniqueKeyForSelections(variantSelections);

            return(this.FindByKey(selectionKey));
        }