/// <summary> /// Apply set as commands /// </summary> /// <param name="wallpaper"></param> /// <param name="action"></param> public void SetAs(object parameter) { var values = (object[])parameter; var wallpaper = (Models.Wallpaper.Entities.Wallpaper)values[0]; var action = (string)values[1]; if (action == "AsBackground") { new Uri(wallpaper.Path).SetAsDesktopWallpaper(SetAsWallpaperHelpers.Style.Centered); } else if (action == "SaveAs") { var folderBrowserDialog = new FolderBrowserDialog { Description = ViewModelApplication.LanguageResourceDictionary["SelectSaveDestination"].ToString(), RootFolder = Environment.SpecialFolder.Desktop }; var result = folderBrowserDialog.ShowDialog(); if (result == DialogResult.OK && !string.IsNullOrEmpty(folderBrowserDialog.SelectedPath)) { var fileName = Path.GetFileName(wallpaper.Path); File.Copy(wallpaper.Path, $"{folderBrowserDialog.SelectedPath}\\{fileName}"); } } else if (action == "Remove") { if (!wallpaper.Path.StartsWith("https://")) { File.Delete(wallpaper.Path); } if (!wallpaper.Thumbnail.BitmapImageToPath().StartsWith("https://")) { File.Delete(wallpaper.Thumbnail.BitmapImageToPath()); } using var db = new AppDbContext(); db.Wallpapers.Remove(wallpaper); db.SaveChanges(); if (wallpaper.WallpaperType == WallpaperType.Desktop) { DesktopWallpapers.Remove(wallpaper); } else if (wallpaper.WallpaperType == WallpaperType.Mobile) { MobileWallpapers.Remove(wallpaper); } } }