private void OnSelectedFilesUpdateEvent(ObservableCollection <IFiles> files) { var firstOrDefault = files.FirstOrDefault(); if (firstOrDefault != null) { file = firstOrDefault.FullFilePath; } ColorConverterService.GetRgbFromImage(file); publisher = Publisher.File; }
private void WriteJson() { SettingsSolid settings = new SettingsSolid { SolidColorName = SolidColorName, SelectedColor = SelectedColor }; jsonService.WriteJson(settings, configFile); var generateFile = new GenerateMatFile(SolidColorName, ColorConverterService.GetRgbFromColor(SelectedColor), false); generateFile.CreateMatFile(true); }
private void OnSelectedFilesUpdateEvent(ObservableCollection <IFiles> files) { if (files.Count <= 0) { IsPreviewVisible = false; return; } IsPreviewVisible = true; var fileToPreview = files.FirstOrDefault(); if (fileToPreview == null) { return; } var generateFile = new GenerateMatFile(fileToPreview.FullFilePath, ColorConverterService.GetRgbFromImage(fileToPreview.FullFilePath)); generateFile.CreateMatFile(true); }
/// <summary>Converts a <see cref="string" /> back to <see cref="Color" />.</summary> /// <param name="value">The <see cref="string" /> that is produced by the binding target.</param> /// <param name="targetType">The type to convert to.</param> /// <param name="parameter">The converter parameter to use.</param> /// <param name="culture">The culture to use in the converter.</param> /// <returns>A converted value. If the method returns null, the valid null value is used.</returns> /// <remarks>Currently not used in toolkit, but provided for developer use in their own projects</remarks> public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { var color = (string)value; var rgb = ColorConverterService.GetRgbfromHex(color); switch (ShowColorFormat) { case ColorDisplay.Hex: return(value.ToString()); case ColorDisplay.Red: return(Color.FromRgb(rgb[0], rgb[1], rgb[2])); case ColorDisplay.Green: return(Color.FromRgb(rgb[0], rgb[1], rgb[2])); case ColorDisplay.Blue: return(Color.FromRgb(rgb[0], rgb[1], rgb[2])); default: return(value); } }
/// <summary>Does the generation asynchronous.</summary> public async void DoGenerationAsync() { var metroDialog = new MetroMessageDisplayService(unityContainer); var controller = await metroDialog.ShowProgressAsync(infraProps.Resources.ProgressDialogTitle, infraProps.Resources.ProgressDialogPreviewContent); controller.SetIndeterminate(); controller.SetCancelable(true); int sumFiles = GenerationFiles.Count; int curFile = 0; controller.Maximum = sumFiles; await Task.Delay(250); foreach (var file in GenerationFiles) { try { var fileToGenerate = file.FullFilePath; var filename = CharConverterService.ConvertCharsToAscii(file.FileName) + Extension; FileInfo fi = new FileInfo(fileToGenerate); if (File.Exists(fileToGenerate)) { var pathForOrig = fi.DirectoryName + suffixPathForOrig; if (!Directory.Exists(pathForOrig)) { Directory.CreateDirectory(pathForOrig); } var savedOriginalFile = pathForOrig + file.FileName + Extension; if (!File.Exists(savedOriginalFile)) { File.Copy(fileToGenerate, savedOriginalFile, false); } await Task.Delay(50); var imageService = new ImageService(); var resizedImage = imageService.ResizeImage(savedOriginalFile, maxWidth, maxHeight, false); resizedImage.Save(fileToGenerate, ImageFormat.Jpeg); resizedImage.Dispose(); await Task.Delay(50); fileToGenerate = $@"{fi.DirectoryName}\{filename}"; await Task.Delay(50); } if (!file.FullFilePath.Equals($@"{fi.DirectoryName}\{filename}")) { File.Move(file.FullFilePath, fileToGenerate); } await Task.Delay(50); var rgb = File.Exists(fileToGenerate) ? ColorConverterService.GetRgbFromImage(fileToGenerate) : SolidRgb; new GenerateThumbs().DoGeneration(fileToGenerate, rgb, IsFromJpg, ThumbnailService.ShowPreview.No); await Task.Delay(50); var generateFile = new GenerateMatFile(fileToGenerate, rgb, IsFromJpg); generateFile.CreateMatFile(); await Task.Delay(50); controller.SetProgress(++curFile); controller.SetMessage(string.Format(infraProps.Resources.ProgressDialogRunningContent, curFile, sumFiles)); await Task.Delay(50); } catch (Exception ex) { logMessage = $"[{GetType().Name}] Exception at {MethodBase.GetCurrentMethod()}: {ex}"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Exception, Priority.High); DialogService.Exception(ex, DialogService.ExceptionType.Universal); } } await controller.CloseAsync(); eventAggregator.GetEvent <FilesUpdateEvent>().Publish(FileCollection); if (controller.IsCanceled) { await metroDialog.ShowMessageAsync(infraProps.Resources.MessageDialogCancelTitle, infraProps.Resources.MessageDialogCancelContent); return; } if (await metroDialog.ShowMessageAsync(infraProps.Resources.MessageDialogCompleteTitle, string.Format(infraProps.Resources.MessageDialogCompleteContent, "\n"), MessageDialogStyle.AffirmativeAndNegative) == MessageDialogResult.Affirmative) { ExternalProgramService.OpenExplorer(SelectedPath); } eventAggregator.GetEvent <StatusBarMessageUpdateEvent>().Publish(string.Format(Resources.StatusBarFilesGenerated, sumFiles)); logMessage = $"[{GetType().Name}] MatFileGeneration completed"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Debug, Priority.None); }