public SealedBoxViewModel(SealedBoxDto item,
                           StyleEntireDto style,
                           List <StyleItemDTO> styleItems,
                           List <SealedBoxItemDto> boxItems)
 {
     ConstructFrom(item, style, styleItems, boxItems);
 }
        private void ConstructFrom(SealedBoxDto item,
                                   StyleEntireDto style,
                                   List <StyleItemDTO> styleItems,
                                   List <SealedBoxItemDto> boxItems)
        {
            Id      = item.Id;
            StyleId = item.StyleId;
            if (style != null)
            {
                StyleString = style.StyleID;
            }

            BoxBarcode       = item.BoxBarcode;
            Printed          = item.Printed;
            PolyBags         = item.PolyBags;
            BoxQuantity      = item.BoxQuantity;
            Owned            = item.Owned;
            Price            = item.PajamaPrice;
            Archived         = item.Archived;
            UpdateDate       = item.UpdateDate;
            CreateDate       = item.CreateDate;
            OriginCreateDate = item.OriginCreateDate;

            UpdatedByName = item.UpdatedByName;

            BoxItemsQuantity = boxItems.Sum(b => b.BreakDown);

            StyleItems = new StyleItemCollection()
            {
                DisplayMode = StyleItemDisplayMode.BoxBreakdown,
                Items       = styleItems
                              .OrderBy(si => SizeHelper.GetSizeIndex(si.Size))
                              .ThenBy(si => si.Color)
                              .Select(si => new StyleItemViewModel(si)).ToList()
            };

            //Set boxes values
            foreach (var boxItem in boxItems)
            {
                var styleItem = StyleItems.Items.FirstOrDefault(si => si.Id == boxItem.StyleItemId);
                if (styleItem != null)
                {
                    styleItem.Breakdown = boxItem.BreakDown;
                    styleItem.BoxItemId = boxItem.Id;
                }
            }

            Breakdown = string.Join("-", StyleItems.Items
                                    .OrderBy(si => SizeHelper.GetSizeIndex(si.Size))
                                    .ThenBy(si => si.Color)
                                    .Where(si => si.Breakdown.HasValue)
                                    .Select(si => si.Breakdown).ToList());
        }