private void PART_BtSetIcon_Click(object sender, RoutedEventArgs e)
        {
            if (LmImageToolsIcon == null)
            {
                if ((string)PART_ComboBoxMedia.SelectedItem == resources.GetString("LOCGameCoverImageTitle"))
                {
                    LmImageToolsIcon = new LmImageTools(_PlayniteApi.Database.GetFullFilePath(_GameMenu.CoverImage));
                }
                if ((string)PART_ComboBoxMedia.SelectedItem == resources.GetString("LOCGameBackgroundTitle"))
                {
                    LmImageToolsIcon = new LmImageTools(_PlayniteApi.Database.GetFullFilePath(_GameMenu.BackgroundImage));
                }

                ((ObservableCollection <string>)PART_ComboBoxMedia.ItemsSource).Add(resources.GetString("LOCGameIconTitle"));
            }


            LmImageToolsIcon.SetImageEdited(LmImageToolsSelected.GetEditedImage());
            PART_BtReset_Click(null, null);
        }
        private void PART_BtSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                string FilePath        = string.Empty;
                string FilePathOld     = string.Empty;
                string PluginCachePath = System.IO.Path.Combine(PlaynitePaths.DataCachePath, "LibraryManagement");

                if (!Directory.Exists(PluginCachePath))
                {
                    Directory.CreateDirectory(PluginCachePath);
                }

                _PlayniteApi.Database.Games.BeginBufferUpdate();

                if (LmImageToolsIcon != null && LmImageToolsIcon.GetEditedImage() != null)
                {
                    if (_GameMenu.Icon.IsNullOrEmpty())
                    {
                        _GameMenu.Icon = Path.Combine(_GameMenu.Id.ToString(), Guid.NewGuid() + ".png");
                    }
                    string NewIcon = Path.Combine(_GameMenu.Id.ToString(), Guid.NewGuid() + (Path.GetExtension(_GameMenu.Icon).Contains("ico", StringComparison.OrdinalIgnoreCase) ? ".png" : Path.GetExtension(_GameMenu.Icon)));

                    FilePath    = System.IO.Path.Combine(PluginCachePath, System.IO.Path.GetFileName(_GameMenu.Icon));
                    FilePathOld = _PlayniteApi.Database.GetFullFilePath(_GameMenu.Icon);
                    LmImageToolsIcon.GetEditedImage().Save(FilePath);

                    FileSystem.CopyFile(FilePath, _PlayniteApi.Database.GetFullFilePath(NewIcon));
                    FileSystem.DeleteFileSafe(FilePathOld);

                    _GameMenu.Icon = NewIcon;
                }

                if (LmImageToolsCover != null && LmImageToolsCover.GetEditedImage() != null && !_GameMenu.CoverImage.IsNullOrEmpty())
                {
                    string NewIcon = Path.Combine(_GameMenu.Id.ToString(), Guid.NewGuid() + Path.GetExtension(_GameMenu.CoverImage));

                    FilePath    = System.IO.Path.Combine(PluginCachePath, System.IO.Path.GetFileName(_GameMenu.CoverImage));
                    FilePathOld = _PlayniteApi.Database.GetFullFilePath(_GameMenu.CoverImage);
                    LmImageToolsCover.GetEditedImage().Save(FilePath);

                    FileSystem.CopyFile(FilePath, _PlayniteApi.Database.GetFullFilePath(NewIcon));
                    FileSystem.DeleteFileSafe(FilePathOld);

                    _GameMenu.CoverImage = NewIcon;
                }

                if (LmImageToolsBackground != null && LmImageToolsBackground.GetEditedImage() != null && !_GameMenu.BackgroundImage.IsNullOrEmpty())
                {
                    string NewIcon = Path.Combine(_GameMenu.Id.ToString(), Guid.NewGuid() + Path.GetExtension(_GameMenu.BackgroundImage));

                    FilePath    = System.IO.Path.Combine(PluginCachePath, System.IO.Path.GetFileName(_GameMenu.BackgroundImage));
                    FilePathOld = _PlayniteApi.Database.GetFullFilePath(_GameMenu.BackgroundImage);
                    LmImageToolsBackground.GetEditedImage().Save(FilePath);

                    FileSystem.CopyFile(FilePath, _PlayniteApi.Database.GetFullFilePath(NewIcon));
                    FileSystem.DeleteFileSafe(FilePathOld);

                    _GameMenu.BackgroundImage = NewIcon;
                }

                _PlayniteApi.Database.Games.Update(_GameMenu);
                _PlayniteApi.Database.Games.EndBufferUpdate();
            }
            catch (Exception ex)
            {
                Common.LogError(ex, false, true, "LibraryManagement");
            }

            ((Window)this.Parent).Close();
        }