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); }
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); }
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); } } } }
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); }
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)); }