Example #1
0
        public HyperspinFilesViewModel(IEventAggregator ea, ISettingsHypermint settings,
                                       IRegionManager regionManager, ITrashMaster trashMaster,
                                       ISelectedService selectedService, IImageEditService imageEdit, IHyperspinManager hyperspinManager)
        {
            _eventAggregator = ea;
            _settingsRepo    = settings;

            _selectedService  = selectedService;
            _imageEdit        = imageEdit;
            _regionManager    = regionManager;
            _trashMaster      = trashMaster;
            _hyperspinManager = hyperspinManager;


            CurrentMediaFiles            = new ObservableCollection <MediaFile>();
            FilesForGame                 = new ListCollectionView(CurrentMediaFiles);
            FilesForGame.CurrentChanged += FilesForGame_CurrentChanged;

            _eventAggregator.GetEvent <GameSelectedEvent>().Subscribe((x) =>
            {
                try
                {
                    string activeViewName = RegionHelper.GetCurrentViewName(_regionManager);

                    //if (!activeViewName.Contains("HsMediaAuditView") || !activeViewName.Contains("DatabaseDetailsView"))
                    SetCurrentName(x);

                    if (FilesForGame != null)
                    {
                        if (FilesForGame.CurrentItem == null)
                        {
                            _eventAggregator.GetEvent <PreviewGeneratedEvent>().Publish("");
                        }
                        else
                        {
                            FilesForGame_CurrentChanged(null, null);
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }, ThreadOption.UIThread);

            _eventAggregator.GetEvent <SystemSelectedEvent>().Subscribe((x) =>
            {
                UnusedMediaFiles = null;
                CurrentMediaFiles.Clear();
            });

            //_eventAggregator.GetEvent<AuditHyperSpinEndEvent>().Subscribe(BuildUnusedMediaList);

            RemoveFileCommand = new DelegateCommand(() =>
            {
                var currentFile = FilesForGame.CurrentItem as MediaFile;

                if (currentFile != null)
                {
                    _eventAggregator.GetEvent <PreviewGeneratedEvent>().Publish("");

                    _trashMaster.HsFileToTrash(currentFile.FileName, GetSystemFolderName(columnHeader), columnHeader, _selectedService.CurrentRomname);

                    try
                    {
                        SetCurrentName(new string[] { _selectedService.CurrentRomname, columnHeader });

                        _eventAggregator.GetEvent <RefreshHsAuditEvent>().Publish("");
                    }

                    catch (Exception) { }
                }
            });

            OpenFolderCommand = new DelegateCommand(OpenFolder);

            OpenTrashFolderCommand = new DelegateCommand(() =>
            {
                var sys    = GetSystemFolderName(columnHeader);
                var result = new DirectoryInfo(_trashMaster.GetHsTrashPath(sys, columnHeader)).Open();
            });
        }
        public CreateImageViewModel(IEventAggregator eventAggregator,
                                    ISettingsHypermint settings, ISelectedService selected, IImageEditService imageEdit)
        {
            _settings  = settings;
            _selected  = selected;
            _imageEdit = imageEdit;

            Author = _settings.HypermintSettings.Author;

            CurrentSetting = new ImageEditPreset
            {
                Width        = 1920,
                Height       = 1080,
                Png          = true,
                Description  = "desc",
                FlipL        = true,
                FlipOn       = true,
                ResizeImage  = true,
                StretchImage = true,
                TileEnabled  = true,
                TileWidth    = 200,
                TileHeight   = 150
            };

            GeneratePreviewCommand = new DelegateCommand(GeneratePreview);

            MediaExportTypes = new ListCollectionView(new List <string>()
            {
                "Layer 1",
                "Layer 2",
                "Layer 3",
                "Extra Layer 1",
                "BezelBg",
                "Background",
            });

            _eventAggregator = eventAggregator;

            _eventAggregator.GetEvent <ImageEditSourceEvent>().Subscribe(x =>
            {
                currentImageFileSource = x;

                ImageEditSource = ConvertToImageSource.ImageSourceFromUri(new Uri(currentImageFileSource));

                UpdateImagePreviewHeader();
            });

            //Return the current UI as a preset
            _eventAggregator.GetEvent <ImagePresetRequestEvent>().Subscribe((x) =>
            {
                _eventAggregator.GetEvent <ImagePresetRequestedEvent>().Publish(CurrentSetting);
            });

            _eventAggregator.GetEvent <ImagePresetUpdateUiEvent>().Subscribe(x =>
            {
                SetUIValuesFromPreset((ImageEditPreset)x);
            });

            SaveImageCommand = new DelegateCommand(() =>
            {
                var outputFileName = CreateNewImageFileName();

                CreateImage(outputFileName, CurrentSetting.Png);
            });
        }