예제 #1
0
        public string GetSiblingVariantCodeBySize(string siblingCode, string size)
        {
            ContentReference               variationReference = _referenceConverter.GetContentLink(siblingCode);
            IEnumerable <Relation>         productRelations   = _linksRepository.GetRelationsByTarget(variationReference).ToList();
            IEnumerable <ProductVariation> siblingsRelations  = _relationRepository.GetRelationsBySource <ProductVariation>(productRelations.First().Source);
            IEnumerable <ContentReference> siblingsReferences = siblingsRelations.Select(x => x.Target);
            IEnumerable <IContent>         siblingVariations  = _contentLoader.GetItems(siblingsReferences, _preferredCulture);

            var siblingVariant = siblingVariations.OfType <FashionVariant>().FirstOrDefault(x => x.Code == siblingCode);

            foreach (var variant in siblingVariations.OfType <FashionVariant>())
            {
                if (variant.Size == size && variant.Code != siblingCode && variant.Color == siblingVariant.Color)
                {
                    return(variant.Code);
                }
            }

            return(null);
        }
예제 #2
0
        public string GetSiblingVariantCodeBySize(string siblingCode, string size)
        {
            ContentReference               variationReference = _referenceConverter.GetContentLink(siblingCode);
            IEnumerable <Relation>         productRelations   = _linksRepository.GetRelationsByTarget(variationReference).ToList();
            IEnumerable <ProductVariation> siblingsRelations  = _relationRepository.GetRelationsBySource <ProductVariation>(productRelations.First().Source);
            IEnumerable <ContentReference> siblingsReferences = siblingsRelations.Select(x => x.Target);
            IEnumerable <FashionVariant>   siblingVariants    = GetAvailableVariants(siblingsReferences);

            var siblingVariant = siblingVariants.First(x => x.Code == siblingCode);

            foreach (var variant in siblingVariants)
            {
                if (variant.Size.Equals(size, StringComparison.OrdinalIgnoreCase) && variant.Code != siblingCode &&
                    variant.Color.Equals(siblingVariant.Color, StringComparison.OrdinalIgnoreCase))
                {
                    return(variant.Code);
                }
            }

            return(null);
        }