示例#1
0
        private LocalWallpaper SetWallpaperAndGetOld(LocalWallpaper nextWallpaper)
        {
            if (_nextMonitor >= MonitorsManager.MonitorCount)
            {
                _nextMonitor = 0;
            }

            if (MonitorsManager.MonitorCount != _monitors.Count)
            {
                while (MonitorsManager.MonitorCount < _monitors.Count)
                {
                    _monitors.RemoveAt(_monitors.Count - 1);
                }

                while (MonitorsManager.MonitorCount > _monitors.Count)
                {
                    _monitors.Add(new MonitorWallpaperInformation());
                }
            }

            var curMonitor = _nextMonitor++;

            MonitorsManager.SetImageToMonitor(nextWallpaper.Image, curMonitor);

            CountView(_monitors[curMonitor]);
            var oldWallpaper = _monitors[curMonitor].CurrentWallpaper;

            _monitors[curMonitor].CurrentWallpaper = nextWallpaper;
            _monitors[curMonitor].LastChanged      = DateTime.Now;

            return(oldWallpaper);
        }
示例#2
0
        public WallpaperViewModel(LocalWallpaper wallpaper)
        {
            _wallpaper = wallpaper ?? throw new ArgumentNullException(nameof(wallpaper));

            DownVoteCommand = new AsyncRelayCommand(OnDownVoteCommand, x => false);
            UpVoteCommand   = new AsyncRelayCommand(OnUpVoteCommand, x => false);
            InfoCommand     = new RelayCommand(x => OnInfo());
        }
示例#3
0
        private void RefreshWallpaper(LocalWallpaper wallpaper)
        {
            if (wallpaper.Thumbnail == null)
            {
                wallpaper.Thumbnail = new FileInfo(Path.Combine(_cacheDirectory.FullName, wallpaper.Id.ToString() + "_thumb"));
            }
            if (wallpaper.Image == null)
            {
                wallpaper.Image = new FileInfo(Path.Combine(_cacheDirectory.FullName, wallpaper.Id.ToString()));
            }

            if (!_downloaderQueue.IsAddingCompleted)
            {
                _downloaderQueue.Add(wallpaper);
            }
        }
示例#4
0
 public void CountView(LocalWallpaper currentWallpaper)
 => _wallpaperApiClient.PostCommand(new CountWallpaperView
 {
     WallpaperId = currentWallpaper.Id
 });