Catalog/WPFCatalog/MainWindowViewModel.cs
2017-04-17 14:25:25 +02:00

771 lines
22 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CatalogLib;
using GalaSoft.MvvmLight.Command;
using MaddoLibrary.Helpers;
using WPFCatalog.Messages;
namespace WPFCatalog
{
public class MainWindowViewModel : ViewModelBase
{
public PicSettings PicSettings
{
get { return PicSettings.Instance; }
}
public MainWindowViewModel()
{
//PicSettings = new PicSettings();
RegisterCommands();
}
// todo: comandi e serializzazione
#region commands
public RelayCommand ExportSettingsCommand { get; private set; }
public RelayCommand ImportSettingsCommand { get; private set; }
public RelayCommand SelectSourceFolderCommand { get; private set; }
public RelayCommand SelectDestinationFolderCommand { get; private set; }
public RelayCommand OpenSourceFolderCommand { get; private set; }
public RelayCommand OpenDestinationFolderCommand { get; private set; }
public RelayCommand StartCommand { get; private set; }
public RelayCommand PickFontCommand { get; private set; }
private void RegisterCommands()
{
ExportSettingsCommand = new RelayCommand(ExportSettings);
ImportSettingsCommand = new RelayCommand(ImportSettings);
SelectSourceFolderCommand = new RelayCommand(SelectSourceFolder);
OpenSourceFolderCommand = new RelayCommand(OpenSourceFolder);
SelectDestinationFolderCommand = new RelayCommand(SelectDestinationFolder);
OpenDestinationFolderCommand = new RelayCommand(OpenDestinationFolder);
StartCommand = new RelayCommand(Start);
PickFontCommand = new RelayCommand(PickFont);
}
private void PickFont()
{
//FontData d = null;
MessengerInstance.Send<OpenFontWindowMessage>(new OpenFontWindowMessage((ayy) =>
{
this.FontName = ayy.Name;
this.FontSize = ayy.Size;
//d = ayy;
}));
//if (d != null)
//{
// FontName = d.Name;
//}
//string s = d.Name;
}
private void Start()
{
// todo folder mode
foreach (var file in Directory.EnumerateFiles(PicSettings.DirectorySorgente))
{
IImageProcessor i = new ImgSharpCreator();
//ImageCreator2 i = new ImageCreator2();
i.Start(new FileInfo(file));
}
DialogHelper.PopUpAlert("Finished", "message");
}
private void OpenSourceFolder()
{
if (Directory.Exists(DirSorgente))
{
Process.Start("explorer.exe", DirSorgente);
}
}
private void OpenDestinationFolder()
{
if (Directory.Exists(DirDestinazione))
{
Process.Start("explorer.exe", DirDestinazione);
}
}
private void SelectSourceFolder()
{
var a = FileHelper.GetOpenFolderPath();
if (!string.IsNullOrWhiteSpace(a))
{
this.DirSorgente = a;
}
}
private void SelectDestinationFolder()
{
var a = FileHelper.GetOpenFolderPath();
if (!string.IsNullOrWhiteSpace(a))
{
this.DirDestinazione = a;
}
}
private void ExportSettings()
{
string s = PicSettings.SerializeSettings();
DialogHelper.PopUpAlert(s, "data");
var savePath = FileHelper.GetSavePath("", "settings.json", string.Empty);
if (string.IsNullOrWhiteSpace(savePath)) return;
if (Directory.Exists(Path.GetDirectoryName(savePath)))
{
Debug.WriteLine(savePath);
FileHelper.WriteToFile(savePath, s);
Debug.WriteLine(s);
}
}
private void ImportSettings()
{
var loadPath = FileHelper.GetOpenPath();
if (string.IsNullOrWhiteSpace(loadPath)) return;
if (File.Exists(loadPath))
{
var f = FileHelper.ReadTextFile(loadPath);
PicSettings.DeserializeSettings(f);
RaisePropertyChanged(string.Empty);
}
}
#endregion
#region Proprietà
public PicSettings SettingsString
{
get { return PicSettings; }
}
public string DirSorgente
{
get { return PicSettings.GetString("DirSorgente"); }
set { PicSettings.Set("DirSorgente", value); RaisePropertyChanged("DirSorgente"); }
}
public string DirDestinazione
{
get { return PicSettings.DirectoryDestinazione; }
set
{
PicSettings.Set("DirDestinazione", value);
RaisePropertyChanged("DirDestinazione");
}
}
public bool DirAggiornaSottoDirectory
{
get { return PicSettings.DirAggiornaSottoDirectory; }
set
{
PicSettings.DirAggiornaSottoDirectory = value;
RaisePropertyChanged("DirAggiornaSottoDirectory");
}
}
public bool SubdirCreaSottoCartelle
{
get { return PicSettings.SubdirCreaSottoCartelle; }
set { PicSettings.SubdirCreaSottoCartelle = value; RaisePropertyChanged("SubdirCreaSottoCartelle"); }
}
public int SubdirIntervalloFile
{
get { return PicSettings.SubdirIntervalloFile; }
set { PicSettings.SubdirIntervalloFile = value; RaisePropertyChanged("SubdirIntervalloFile"); }
}
public string SubdirSuffisso
{
get { return PicSettings.SubdirSuffisso; }
set { PicSettings.SubdirSuffisso = value; RaisePropertyChanged("SubdirSuffisso"); }
}
public int SubdirCifreContatore
{
get { return PicSettings.SubdirCifreContatore; }
set { PicSettings.SubdirCifreContatore = value; RaisePropertyChanged("SubdirCifreContatore"); }
}
public bool SubdirNumerazioneProgressiva
{
get { return PicSettings.SubdirNumerazioneProgressiva; }
set { PicSettings.SubdirNumerazioneProgressiva = value; RaisePropertyChanged("SubdirNumerazioneProgressiva"); }
}
public bool SubdirNumerazioneFiles
{
get { return PicSettings.SubdirNumerazioneFiles; }
set { PicSettings.SubdirNumerazioneFiles = value; RaisePropertyChanged("SubdirNumerazioneFiles"); }
}
public string DirDividiNumFile { get { return PicSettings.GetString("dirDividiNumFile"); } set { PicSettings.Set("dirDividiNumFile", value); } }
public string DirDividiSuffisso { get { return PicSettings.GetString("dirDividiSuffisso"); } set { PicSettings.Set("dirDividiSuffisso", value); } }
public string DirDividiNumCifre { get { return PicSettings.GetString("dirDividiNumCifre"); } set { PicSettings.Set("dirDividiNumCifre", value); RaisePropertyChanged("DirDividiNumCifre"); } }
public bool DirDividiDestinazione { get { return PicSettings.GetBool("dirDividiDestinazione"); } set { PicSettings.Set("dirDividiDestinazione", value); } }
public bool DirDividiTipoNumerazioneProg { get { return PicSettings.GetString("DirDividiTipoNumerazione").ToUpper() == "PROGRESSIVA"; } set { if (value == true) PicSettings.Set("DirDividiTipoNumerazione", "PROGRESSIVA"); } }
public bool DirDividiTipoNumerazioneFile { get { return PicSettings.GetString("DirDividiTipoNumerazione").ToUpper() == "FILES"; } set { if (value == false) PicSettings.Set("DirDividiTipoNumerazione", "FILES"); } }
public bool MiniatureCrea { get { return PicSettings.GetBool("miniatureCrea"); } set { PicSettings.Set("miniatureCrea", value); RaisePropertyChanged("MiniatureCrea"); } }
public string MiniatureSuffisso
{
get { return PicSettings.GetString("miniatureSuffisso"); }
set
{
PicSettings.Set("miniatureSuffisso", value);
RaisePropertyChanged("MiniatureSuffisso");
}
}
public string MiniatureAltezza
{
get { return PicSettings.GetString("miniatureAltezza"); }
set
{
PicSettings.Set("miniatureAltezza", value);
RaisePropertyChanged("MiniatureAltezza");
}
}
public string MiniatureLarghezza
{
get { return PicSettings.GetString("miniatureLarghezza"); }
set
{
PicSettings.Set("miniatureLarghezza", value);
RaisePropertyChanged("MiniatureLarghezza");
}
}
public bool MiniatureAddScritta
{
get { return PicSettings.GetBool("miniatureAddScritta"); }
set
{
PicSettings.Set("miniatureAddScritta", value);
RaisePropertyChanged("MiniatureAddScritta");
}
}
public bool MiniatureAddOrario
{
get { return PicSettings.GetBool("miniatureAddOrario"); }
set
{
PicSettings.Set("miniatureAddOrario", value);
RaisePropertyChanged("MiniatureAddOrario");
}
}
public int FotoAltezza
{
get
{
return PicSettings.FotoAltezza;
}
set
{
PicSettings.FotoAltezza = value;
RaisePropertyChanged("FotoAltezza");
}
}
public int FotoLarghezza
{
get { return PicSettings.FotoLarghezza; }
set
{
PicSettings.FotoLarghezza = value;
RaisePropertyChanged("FotoLarghezza");
}
}
public string FontDimensione
{
get { return PicSettings.GetString("fontDimensione"); }
set
{
PicSettings.Set("fontDimensione", value);
RaisePropertyChanged("FontDimensione");
}
}
public string FontDimensioneMiniatura
{
get { return PicSettings.GetString("fontDimensioneMiniatura"); }
set
{
PicSettings.Set("fontDimensioneMiniatura", value);
RaisePropertyChanged("FontDimensioneMiniatura");
}
}
public bool FontBold
{
get { return PicSettings.GetBool("fontBold"); }
set
{
PicSettings.Set("fontBold", value);
RaisePropertyChanged("FontBold");
}
}
public bool FontNome
{
get { return PicSettings.GetBool("fontNome"); }
set
{
PicSettings.Set("$parName", value);
RaisePropertyChanged("FontNome");
}
}
public string TestoTesto
{
get { return PicSettings.GetString("testoTesto"); }
set
{
PicSettings.Set("testoTesto", value);
RaisePropertyChanged("TestoTesto");
}
}
public string TestoTrasparente
{
get { return PicSettings.GetString("testoTrasparente"); }
set
{
PicSettings.Set("testoTrasparente", value);
RaisePropertyChanged("TestoTrasparente");
}
}
public string TestoMargine
{
get { return PicSettings.GetString("testoMargine"); }
set
{
PicSettings.Set("testoMargine", value);
RaisePropertyChanged("TestoMargine");
}
}
public string TestoPosizione
{
get { return PicSettings.GetString("testoPosizione"); }
set
{
PicSettings.Set("testoPosizione", value);
RaisePropertyChanged("TestoPosizione");
}
}
public string TestoAllineamento
{
get { return PicSettings.GetString("testoAllineamento"); }
set
{
PicSettings.Set("testoAllineamento", value);
RaisePropertyChanged("TestoAllineamento");
}
}
public string MarchioFile
{
get { return PicSettings.GetString("marchioFile"); }
set
{
PicSettings.Set("marchioFile", value);
RaisePropertyChanged("MarchioFile");
}
}
public string MarchioAltezza
{
get { return PicSettings.GetString("marchioAltezza"); }
set
{
PicSettings.Set("marchioAltezza", value);
RaisePropertyChanged("MarchioAltezza");
}
}
public string MarchioLarghezza
{
get { return PicSettings.GetString("marchioLarghezza"); }
set
{
PicSettings.Set("marchioLarghezza", value);
RaisePropertyChanged("MarchioLarghezza");
}
}
public string MarchioMargine
{
get { return PicSettings.GetString("marchioMargine"); }
set
{
PicSettings.Set("marchioMargine", value);
RaisePropertyChanged("MarchioMargine");
}
}
public string MarchioAllOrizzontale
{
get { return PicSettings.GetString("marchioAllOrizzontale"); }
set
{
PicSettings.Set("marchioAllOrizzontale", value);
RaisePropertyChanged("MarchioAllOrizzontale");
}
}
public string MarchioAllVerticale
{
get { return PicSettings.GetString("marchioAllVerticale"); }
set
{
PicSettings.Set("marchioAllVerticale", value);
RaisePropertyChanged("MarchioAllVerticale");
}
}
public string MarchioTrasparenza
{
get { return PicSettings.GetString("marchioTrasparenza"); }
set
{
PicSettings.Set("marchioTrasparenza", value);
RaisePropertyChanged("MarchioTrasparenza");
}
}
public bool MarchioAggiungi
{
get { return PicSettings.GetBool("marchioAggiungi"); }
set
{
PicSettings.Set("marchioAggiungi", value);
RaisePropertyChanged("MarchioAggiungi");
}
}
public bool TempoGara
{
get { return PicSettings.GetBool("tempoGara"); }
set
{
PicSettings.Set("tempoGara", value);
RaisePropertyChanged("TempoGara");
}
}
public bool Orario
{
get { return PicSettings.GetBool("orario"); }
set
{
PicSettings.Set("orario", value);
RaisePropertyChanged("Orario");
}
}
public string EtichettaOrario
{
get { return PicSettings.GetString("etichettaOrario"); }
set
{
PicSettings.Set("etichettaOrario", value);
RaisePropertyChanged("EtichettaOrario");
}
}
public bool GeneraleForzaJPG
{
get { return PicSettings.GeneraleForzaJPG; }
set
{
PicSettings.GeneraleForzaJPG = value;
RaisePropertyChanged("GeneraleForzaJPG");
}
}
public bool GeneraleRotazioneAutomatica
{
get { return PicSettings.GeneraleRotazioneAutomatica; }
set
{
PicSettings.GeneraleRotazioneAutomatica = value;
RaisePropertyChanged("GeneraleRotazioneAutomatica");
}
}
public bool GeneraleSovrascriviFile
{
get { return PicSettings.GeneraleSovrascriviFile; }
set
{
PicSettings.GeneraleSovrascriviFile = value;
RaisePropertyChanged("GeneraleSovrascriviFile");
}
}
public string GrandezzaVerticale
{
get { return PicSettings.GetString("grandezzaVerticale"); }
set
{
PicSettings.Set("grandezzaVerticale", value);
RaisePropertyChanged("GrandezzaVerticale");
}
}
public string MargineVerticale
{
get { return PicSettings.GetString("margineVerticale"); }
set
{
PicSettings.Set("margineVerticale", value);
RaisePropertyChanged("MargineVerticale");
}
}
public bool DimensioniOriginali
{
get { return PicSettings.GetBool("dimensioniOriginali"); }
set
{
PicSettings.Set("dimensioniOriginali", value);
RaisePropertyChanged("DimensioniOriginali");
}
}
public string TestoVerticale
{
get { return PicSettings.GetString("testoVerticale"); }
set
{
PicSettings.Set("testoVerticale", value);
RaisePropertyChanged("TestoVerticale");
}
}
public bool NomeMiniatura
{
get { return PicSettings.GetBool("nomeMiniatura"); }
set
{
PicSettings.Set("nomeMiniatura", value);
RaisePropertyChanged("NomeMiniatura");
}
}
public bool DataFoto
{
get { return PicSettings.GetBool("dataFoto"); }
set
{
PicSettings.Set("dataFoto", value);
RaisePropertyChanged("DataFoto");
}
}
public bool NumeroFoto
{
get { return PicSettings.GetBool("numeroFoto"); }
set
{
PicSettings.Set("numeroFoto", value);
RaisePropertyChanged("NumeroFoto");
}
}
public bool TempoSmall
{
get { return PicSettings.GetBool("tempoSmall"); }
set
{
PicSettings.Set("tempoSmall", value);
RaisePropertyChanged("TempoSmall");
}
}
public bool NumTempoSmall
{
get { return PicSettings.GetBool("numTempoSmall"); }
set
{
PicSettings.Set("numTempoSmall", value);
RaisePropertyChanged("NumTempoSmall");
}
}
public int CompressioneJpeg
{
get { return PicSettings.CompressioneJpeg; }
set
{
PicSettings.CompressioneJpeg = value;
RaisePropertyChanged("CompressioneJpeg");
}
}
public bool FotoMantieniDimensioni
{
get { return PicSettings.FotoMantieniDimensioni; }
set
{
PicSettings.FotoMantieniDimensioni = value;
RaisePropertyChanged("FotoMantieniDimensioni");
}
}
public string FotoSuffisso
{
get { return PicSettings.FotoSuffisso; }
set { PicSettings.FotoSuffisso = value; RaisePropertyChanged("FotoSuffisso"); }
}
public string CompressioneJpegMiniatura
{
get { return PicSettings.GetString("compressioneJpegMiniatura"); }
set
{
PicSettings.Set("compressioneJpegMiniatura", value);
RaisePropertyChanged("CompressioneJpegMiniatura");
}
}
#endregion
#region Testo
public bool EnableText
{
get { return PicSettings.EnableText; }
set { PicSettings.EnableText = value; RaisePropertyChanged("EnableText"); }
}
public string ColoreTestoRGB
{
get { return PicSettings.GetString("coloreTestoRGB", "#000000"); }
set
{
PicSettings.Set("coloreTestoRGB", value);
RaisePropertyChanged("ColoreTestoRGB");
}
}
public string FontName
{
get { return PicSettings.NomeFont; }
set
{
PicSettings.NomeFont = value;
RaisePropertyChanged("FontName");
}
}
public double FontSize
{
get
{
{
return PicSettings.DimensioneFont;
}
}
set
{
PicSettings.DimensioneFont = value;
RaisePropertyChanged("FontSize");
}
}
public string TestoApplicareOrizzontale
{
get
{
return PicSettings.TestoApplicareOrizzontale;
}
set
{
PicSettings.TestoApplicareOrizzontale = value;
RaisePropertyChanged("TestoApplicareOrizzontale");
}
}
//todo: bold
//todo: italic
#endregion
#region Logo
public bool EnableLogo
{
get { return PicSettings.EnableLogo; }
set { PicSettings.EnableLogo = value; RaisePropertyChanged("EnableLogo"); }
}
#endregion
#region Thumbnail
public bool EnableThumbnails
{
get { return PicSettings.EnableThumbnails; }
set { PicSettings.EnableThumbnails = value; RaisePropertyChanged("EnableThumbnails"); }
}
#endregion
}
}