public OptionsVM(IProfileService profileService, IFilterWheelMediator filterWheelMediator) : base(profileService) { Title = "LblOptions"; CanClose = false; ImageGeometry = (System.Windows.Media.GeometryGroup)System.Windows.Application.Current.Resources["SettingsSVG"]; this.filterWheelMediator = filterWheelMediator; OpenWebRequestCommand = new RelayCommand(OpenWebRequest); OpenImageFileDiagCommand = new RelayCommand(OpenImageFileDiag); OpenSharpCapSensorAnalysisFolderDiagCommand = new RelayCommand(OpenSharpCapSensorAnalysisFolderDiag); OpenSequenceTemplateDiagCommand = new RelayCommand(OpenSequenceTemplateDiag); OpenSequenceCommandAtCompletionDiagCommand = new RelayCommand(OpenSequenceCommandAtCompletionDiag); OpenSequenceFolderDiagCommand = new RelayCommand(OpenSequenceFolderDiag); OpenCygwinFileDiagCommand = new RelayCommand(OpenCygwinFileDiag); OpenPS2FileDiagCommand = new RelayCommand(OpenPS2FileDiag); OpenPHD2DiagCommand = new RelayCommand(OpenPHD2FileDiag); OpenASPSFileDiagCommand = new RelayCommand(OpenASPSFileDiag); OpenASTAPFileDiagCommand = new RelayCommand(OpenASTAPFileDiag); OpenLogFolderCommand = new RelayCommand(OpenLogFolder); ToggleColorsCommand = new RelayCommand(ToggleColors); DownloadIndexesCommand = new RelayCommand(DownloadIndexes); OpenSkyAtlasImageRepositoryDiagCommand = new RelayCommand(OpenSkyAtlasImageRepositoryDiag); OpenSkySurveyCacheDirectoryDiagCommand = new RelayCommand(OpenSkySurveyCacheDirectoryDiag); ImportFiltersCommand = new RelayCommand(ImportFilters); AddFilterCommand = new RelayCommand(AddFilter); SetAutoFocusFilterCommand = new RelayCommand(SetAutoFocusFilter); RemoveFilterCommand = new RelayCommand(RemoveFilter); AddProfileCommand = new RelayCommand(AddProfile); CloneProfileCommand = new RelayCommand(CloneProfile, (object o) => { return(SelectedProfile != null); }); RemoveProfileCommand = new RelayCommand(RemoveProfile, (object o) => { return(SelectedProfile != null && SelectedProfile.Id != profileService.ActiveProfile.Id); }); SelectProfileCommand = new RelayCommand(SelectProfile, (o) => { return(SelectedProfile != null); }); CopyToCustomSchemaCommand = new RelayCommand(CopyToCustomSchema, (object o) => ActiveProfile.ColorSchemaSettings.ColorSchema?.Name != "Custom"); CopyToAlternativeCustomSchemaCommand = new RelayCommand(CopyToAlternativeCustomSchema, (object o) => ActiveProfile.ColorSchemaSettings.ColorSchema?.Name != "Alternative Custom"); SiteFromGPSCommand = new AsyncCommand <bool>(() => Task.Run(SiteFromGPS)); SiteFromPlanetariumCommand = new AsyncCommand <bool>(() => Task.Run(SiteFromPlanetarium)); ImagePatterns = ImagePatterns.CreateExample(); ScanForIndexFiles(); profileService.LocaleChanged += (object sender, EventArgs e) => { ImagePatterns = ImagePatterns.CreateExample(); RaisePropertyChanged(nameof(FileTypes)); }; profileService.LocationChanged += (object sender, EventArgs e) => { RaisePropertyChanged(nameof(Latitude)); RaisePropertyChanged(nameof(Longitude)); }; profileService.ProfileChanged += (object sender, EventArgs e) => { ProfileChanged(); }; }
public ImagePatterns GetImagePatterns() { var p = new ImagePatterns(); var metadata = this.MetaData; p.Set(ImagePatternKeys.Filter, metadata.FilterWheel.Filter); p.Set(ImagePatternKeys.ExposureTime, metadata.Image.ExposureTime); p.Set(ImagePatternKeys.ApplicationStartDate, Utility.Utility.ApplicationStartDate.ToString("yyyy-MM-dd")); p.Set(ImagePatternKeys.Date, metadata.Image.ExposureStart.ToString("yyyy-MM-dd")); // ExposureStart is initialized to DateTime.MinValue, and we cannot subtract time from that. Only evaluate // the $$DATEMINUS12$$ pattern if the time is at least 12 hours on from DateTime.MinValue. if (metadata.Image.ExposureStart > DateTime.MinValue.AddHours(12)) { p.Set(ImagePatternKeys.DateMinus12, metadata.Image.ExposureStart.AddHours(-12).ToString("yyyy-MM-dd")); } p.Set(ImagePatternKeys.Time, metadata.Image.ExposureStart.ToString("HH-mm-ss")); p.Set(ImagePatternKeys.DateTime, metadata.Image.ExposureStart.ToString("yyyy-MM-dd_HH-mm-ss")); p.Set(ImagePatternKeys.FrameNr, metadata.Image.ExposureNumber.ToString("0000")); p.Set(ImagePatternKeys.ImageType, metadata.Image.ImageType); p.Set(ImagePatternKeys.TargetName, metadata.Target.Name); if (metadata.Image.RecordedRMS != null) { p.Set(ImagePatternKeys.RMS, metadata.Image.RecordedRMS.Total); p.Set(ImagePatternKeys.RMSArcSec, metadata.Image.RecordedRMS.Total * metadata.Image.RecordedRMS.Scale); } if (!double.IsNaN(metadata.Focuser.Position)) { p.Set(ImagePatternKeys.FocuserPosition, metadata.Focuser.Position); } if (!double.IsNaN(metadata.Focuser.Temperature)) { p.Set(ImagePatternKeys.FocuserTemp, metadata.Focuser.Temperature); } if (metadata.Camera.Binning == string.Empty) { p.Set(ImagePatternKeys.Binning, "1x1"); } else { p.Set(ImagePatternKeys.Binning, metadata.Camera.Binning); } if (!double.IsNaN(metadata.Camera.Temperature)) { p.Set(ImagePatternKeys.SensorTemp, metadata.Camera.Temperature); } if (metadata.Camera.Gain >= 0) { p.Set(ImagePatternKeys.Gain, metadata.Camera.Gain); } if (metadata.Camera.Offset >= 0) { p.Set(ImagePatternKeys.Offset, metadata.Camera.Offset); } if (metadata.Camera.USBLimit >= 0) { p.Set(ImagePatternKeys.USBLimit, metadata.Camera.USBLimit); } if (!double.IsNaN(this.StarDetectionAnalysis.HFR)) { p.Set(ImagePatternKeys.HFR, this.StarDetectionAnalysis.HFR); } if (!double.IsNaN(metadata.WeatherData.SkyQuality)) { p.Set(ImagePatternKeys.SQM, metadata.WeatherData.SkyQuality); } if (!string.IsNullOrEmpty(metadata.Camera.ReadoutModeName)) { p.Set(ImagePatternKeys.ReadoutMode, metadata.Camera.ReadoutModeName); } if (!string.IsNullOrEmpty(metadata.Camera.Name)) { p.Set(ImagePatternKeys.Camera, metadata.Camera.Name); } if (!string.IsNullOrEmpty(metadata.Telescope.Name)) { p.Set(ImagePatternKeys.Telescope, metadata.Telescope.Name); } if (!double.IsNaN(metadata.Rotator.MechanicalPosition)) { p.Set(ImagePatternKeys.RotatorAngle, metadata.Rotator.MechanicalPosition); } if (this.StarDetectionAnalysis.DetectedStars >= 0) { p.Set(ImagePatternKeys.StarCount, this.StarDetectionAnalysis.DetectedStars); } return(p); }