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