public void ResetParameters()
 {
     //defaults
     OldState = new ShortcutItemState
     {
         BackgroundColor = ShortcutConstantsAndEnums.DefaultAccentColor ?? "black",
         ForegroundText = "light",
         ShowNameOnSquare150X150Logo = true,
         MediumImage = new ShortcutItemImage(ShortcutConstantsAndEnums.MediumShortcutOutputSize),
         SmallImage = new ShortcutItemImage(ShortcutConstantsAndEnums.SmallShortcutOutputSize)
     };
     CurrentState = OldState.Clone();
 }
        internal void LoadParameters(bool loadFromFile, string visualElementsManifestPath,
            string mediumImageResizeMetadataPath, string smallImageResizeMetadataPath, string targetFolderPath)
        {
            if (loadFromFile)
            {
                var xmlDoc = XDocument.Load(visualElementsManifestPath);

                try
                {
                    ShortcutItemImage mediumImage = null;
                    ShortcutItemImage smallImage = null;
                    if (File.Exists(mediumImageResizeMetadataPath))
                    {
                        mediumImage = ShortcutItemImage.Load(mediumImageResizeMetadataPath);
                    }
                    if (File.Exists(smallImageResizeMetadataPath))
                    {
                        smallImage = ShortcutItemImage.Load(smallImageResizeMetadataPath);
                    }

                    var parameters = from b in xmlDoc.Descendants("VisualElements")
                        select new ShortcutItemState
                        {
                            BackgroundColor = b.Attribute("BackgroundColor").Value,
                            ForegroundText = b.Attribute("ForegroundText").Value,
                            ShowNameOnSquare150X150Logo = b.Attribute("ShowNameOnSquare150x150Logo").Value == "on",
                            MediumImage =
                                mediumImage ?? new ShortcutItemImage(ShortcutConstantsAndEnums.MediumShortcutOutputSize)
                                {
                                    Bytes =
                                        ImageUtils.LoadFileToByteArray(targetFolderPath +
                                                                       b.Attribute("Square150x150Logo").Value),
                                    X = 0,
                                    Y = 0
                                },
                            SmallImage =
                                smallImage ?? new ShortcutItemImage(ShortcutConstantsAndEnums.SmallShortcutOutputSize)
                                {
                                    Bytes =
                                        ImageUtils.LoadFileToByteArray(targetFolderPath +
                                                                       b.Attribute("Square70x70Logo").Value),
                                    X = 0,
                                    Y = 0
                                }
                        };

                    OldState = parameters.Single();
                    CurrentState = OldState.Clone();
                }
                catch
                {
                    ResetParameters();
                }
            }
            else
            {
                ResetParameters();
            }
        }
 public void UndoChanges()
 {
     CurrentState = OldState.Clone();
 }