protected virtual void CreateShoes() { if (_item.ItemClass != null) { ItemClassComponent component = _item.ItemClassComponents.First(); ItemClass itemClass = _item.ItemClass; string sizeCode, widthCode, colorCode; switch (itemClass.Dimensions) { case 1: sizeCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; _item.Dimensions.Add(GetShoeAttributeLabel(component.Detail1), new Attribute() { Code = sizeCode, Value = component.Detail1 }); _item.Dimensions.Add(DimensionName.Width, new Attribute() { Code = "M", Value = "M" }); break; case 2: sizeCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; widthCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail2) && p.Dimension == 2).Code; _item.Dimensions.Add(GetShoeAttributeLabel(component.Detail1), new Attribute() { Code = sizeCode, Value = component.Detail1 }); _item.Dimensions.Add(DimensionName.Width, new Attribute() { Code = widthCode, Value = component.Detail2 }); break; case 3: colorCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; sizeCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail2) && p.Dimension == 2).Code; widthCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail3) && p.Dimension == 3).Code; _item.Dimensions.Add(DimensionName.Color, new Attribute() { Code = colorCode, Value = component.Detail1 }); _item.Dimensions.Add(GetShoeAttributeLabel(component.Detail2), new Attribute() { Code = sizeCode, Value = component.Detail2 }); _item.Dimensions.Add(DimensionName.Width, new Attribute() { Code = widthCode, Value = component.Detail3 }); break; } } else { string[] skuDetails = _item.ItemLookupCode.Split(new Char[1] { '-' }); switch (_item.DimCount) { case 1: _item.Dimensions.Add(GetShoeAttributeLabel(skuDetails[1]), new Attribute() { Code = skuDetails[1], Value = skuDetails[1] }); _item.Dimensions.Add(DimensionName.Width, new Attribute() { Code = "M", Value = "M" }); break; case 2: _item.Dimensions.Add(GetShoeAttributeLabel(skuDetails[1]), new Attribute() { Code = skuDetails[1], Value = skuDetails[1] }); _item.Dimensions.Add(DimensionName.Width, new Attribute() { Code = skuDetails[2], Value = skuDetails[2] }); break; default: throw new NotImplementedException("invalid sku"); } } }
protected virtual void CreatePants() { if (_item.ItemClass != null) { ItemClassComponent component = _item.ItemClassComponents.First(); ItemClass itemClass = _item.ItemClass; string waistCode, inseamCode, colorCode; switch (itemClass.Dimensions) { case 1: waistCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; _item.Dimensions.Add(DimensionName.Waist, new Attribute() { Code = waistCode, Value = component.Detail1 }); break; case 2: waistCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; inseamCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail2) && p.Dimension == 2).Code; _item.Dimensions.Add(DimensionName.Waist, new Attribute() { Code = waistCode, Value = component.Detail1 }); _item.Dimensions.Add(DimensionName.Inseam, new Attribute() { Code = inseamCode, Value = component.Detail2 }); break; case 3: colorCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail1) && p.Dimension == 1).Code; waistCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail2) && p.Dimension == 2).Code; inseamCode = itemClass.MatrixAttributeDisplayOrders.First(p => p.Attribute.Equals(component.Detail3) && p.Dimension == 3).Code; _item.Dimensions.Add(DimensionName.Color, new Attribute() { Code = colorCode, Value = component.Detail1 }); _item.Dimensions.Add(DimensionName.Waist, new Attribute() { Code = waistCode, Value = component.Detail2 }); _item.Dimensions.Add(DimensionName.Inseam, new Attribute() { Code = inseamCode, Value = component.Detail3 }); break; } } else { string[] skuDetails = _item.ItemLookupCode.Split(new Char[1] { '-' }); switch (skuDetails.Length) { case 2: _item.Dimensions.Add(DimensionName.Waist, new Attribute() { Code = skuDetails[1], Value = skuDetails[1] }); break; case 3: _item.Dimensions.Add(DimensionName.Waist, new Attribute() { Code = skuDetails[1], Value = skuDetails[1] }); _item.Dimensions.Add(DimensionName.Inseam, new Attribute() { Code = skuDetails[2], Value = skuDetails[2] }); break; } } }