private void Application_Startup(object sender, StartupEventArgs e) { _Log.WriteInfoHightligh("App started"); if (e?.Args != null && e.Args.Length != 0) { if (e.Args.Length != 3) { _Log.WriteException("3 arguments are required"); _Log.WriteException("INPUT_FOLDER INPUT_WATERMARK_IMAGE OUTPUT_FOLDER"); Current.Shutdown(); return; } var inputFolder = e.Args[0]; var inputWater = e.Args[1]; var outputFolder = e.Args[2]; Watermark.MarkImages(inputFolder, inputWater, outputFolder); _Log.WriteInfo("Closing app"); Current.Shutdown(); } else { var mainWindow = new MainWindow(); mainWindow.Show(); mainWindow.Closed += MainWindow_Closed; } }
private void _BtnWork_Click(object sender, RoutedEventArgs e) { string inputFolder = _TxtInputFolder.Text; string inputWater = _TxtInputWater.Text; string outputFolder = _TxtOutputFolder.Text; if (string.IsNullOrEmpty(inputFolder)) { _Log.WriteException($"Input folder not valid"); return; } if (string.IsNullOrEmpty(inputWater)) { _Log.WriteException($"Input watermark not valid"); return; } if (string.IsNullOrEmpty(outputFolder)) { _Log.WriteException($"Output folder not valid"); return; } try { inputFolder = Path.GetFullPath(inputFolder); inputWater = Path.GetFullPath(inputWater); outputFolder = Path.GetFullPath(outputFolder); _TxtInputFolder.Text = inputFolder; _TxtInputWater.Text = inputWater; _TxtOutputFolder.Text = outputFolder; } catch (System.Exception exception) { _Log.WriteException(exception); return; } if (_TxtWaterScale.Text.Length != 0) { _TxtWaterScale.Text = _TxtWaterScale.Text.Replace(',', '.'); } double waterScale = 0.5; if ( string.IsNullOrWhiteSpace(_TxtWaterScale.Text) || double.TryParse(_TxtWaterScale.Text, out waterScale) == false ) { waterScale = 0.5; _Log.WriteWarning($"Watermark scale not valid : [{_TxtWaterScale.Text}], using default scale {waterScale}"); } _TxtWaterScale.Text = waterScale.ToString(); _BtnProcessImages.IsEnabled = false; _PrgWaterProcess.Value = 0; var waterTask = new WatermarkTask(); waterTask.WatermarkBulkArgs = new WatermarkBulkArgs() { InputFolder = inputFolder, InputWaterImage = inputWater, OutputFolder = outputFolder, ParentTask = waterTask, ForceWrite = true, WaterScale = waterScale }; waterTask.OnProgressChanged += WaterTask_OnProgressChanged; Task.Run(() => { Watermark.MarkImages(waterTask.WatermarkBulkArgs); }).ContinueWith(t => { if (t.Exception != null) { _Log.WriteException(t.Exception); } Dispatcher.Invoke(() => { _BtnProcessImages.IsEnabled = true; }); }); }