コード例 #1
0
        private VariationsCollection GetVariationsByAttributes(Product parentProduct, Variations variations)
        {
            VariationsCollection collection = null;

            if (variations != null)
            {
                var config = ConfigLoader.Get <ProductVariationsConfig>();
                var group  = GetGroup(config, parentProduct, variations);

                if (group != null)
                {
                    // GUID changes on every call - use a value that is driven off the data
                    //var id = Guid.NewGuid().ToString("N");
                    var sb = new StringBuilder();
                    sb.Append(parentProduct.Id);
                    foreach (var p in variations.Product)
                    {
                        sb.Append('-');
                        sb.Append(p.Id);
                    }
                    var id = sb.ToString();

                    var result = GetVariationsByAttributes(variations, id, group.Variations, 0, new List <string>(), new List <string>());
                    if (result != null)
                    {
                        collection = new VariationsCollection
                        {
                            Id         = id,
                            Count      = group.Variations.Length,
                            Levels     = @group.Variations.Select(v => v.Id + "_" + id).ToArray(),
                            Variations = result
                        };
                    }
                }
            }

            return(collection);
        }
コード例 #2
0
 public static VariationsCollection.Variation FirstOrDefault(this VariationsCollection collection, string levelId)
 {
     return(FirstOrDefault(collection.Variations, levelId));
 }