private List <ImageItem> GetLast8Pictures(int selectedIdOfVariationList)
        {
            if (!IsInPictureVariation())
            {
                return(new List <ImageItem>());
            }

            try
            {
                var subPictureList = ImageSelectionList.Skip(Math.Max(1, ImageSelectionList.Count - 8));
                var result         = new List <ImageItem>(subPictureList);
                while (result.Count < 8)
                {
                    result.Add(View.CreateDefaultPictureItem());
                }
                if (ImageSelectionListSelectedItem.ImageItem != null &&
                    !result.Contains(ImageSelectionListSelectedItem.ImageItem))
                {
                    result[selectedIdOfVariationList] = ImageSelectionListSelectedItem.ImageItem;
                }
                else if (ImageSelectionListSelectedItem.ImageItem == null)
                {
                    for (var i = 0; i < result.Count; i++)
                    {
                        if (result[i].ImageFile == StoragePath.NoPicturePlaceholderImgPath)
                        {
                            result[i] = result[selectedIdOfVariationList];
                            break;
                        }
                    }
                    result[selectedIdOfVariationList] = View.CreateDefaultPictureItem();
                }
                else if (selectedIdOfVariationList >= 0)
                // contains selected item, need swap to selected index
                {
                    var indexToSwap = result.IndexOf(ImageSelectionListSelectedItem.ImageItem);
                    var tempItem    = result[selectedIdOfVariationList];
                    result[selectedIdOfVariationList] = ImageSelectionListSelectedItem.ImageItem;
                    result[indexToSwap] = tempItem;
                }
                return(result);
            }
            catch (Exception e)
            {
                View.ShowErrorMessageBox("Failed when generating picture aspect.", e);
                Logger.LogException(e, "GetLast8Pictures");
                return(new List <ImageItem>());
            }
        }