Beispiel #1
0
        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);
        }
Beispiel #4
0
        /// <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);
            }
        }
Beispiel #5
0
        /// <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);
        }