Example #1
0
        /// <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);
                }
            }
        }