public void Load_Empty() { IO.Copy(GetSource("SettingsEmpty.json"), LocalSettingPath(), true); IO.Copy(GetSource("SettingsEmpty.json"), SharedSettingPath(), true); var asm = Assembly.GetExecutingAssembly(); var src = new SettingFolder(asm, RootDirectory(), IO); Assert.That(src.TryLoad(), Is.True); Assert.That(src.Value.Width, Is.EqualTo(1100)); Assert.That(src.Value.Height, Is.EqualTo(650)); Assert.That(src.Value.DataDirectory, Is.EqualTo(RootDirectory())); Assert.That(src.Shared.StartUri, Is.Null); Assert.That(src.Shared.Capacity, Is.EqualTo(100)); Assert.That(src.Shared.EnableNewWindow, Is.False); Assert.That(src.Shared.EnableMonitorMessage, Is.True); Assert.That(src.Shared.LightMode, Is.False); Assert.That(src.Shared.CheckUpdate, Is.True); Assert.That(src.Shared.HighInterval.Value, Is.EqualTo(TimeSpan.FromHours(1))); Assert.That(src.Shared.LowInterval.Value, Is.EqualTo(TimeSpan.FromDays(1))); Assert.That(src.Shared.InitialDelay.Value, Is.EqualTo(TimeSpan.FromSeconds(3))); Assert.That(src.Lock.IsReadOnly, Is.False); Assert.That(src.Lock.IsReadOnly, Is.False); Assert.That(src.Lock.UserName, Is.EqualTo(Environment.UserName)); Assert.That(src.Lock.MachineName, Is.EqualTo(Environment.MachineName)); Assert.That(src.Lock.Sid, Does.StartWith("S-1-5-21")); }
private static void ModeRestore(SettingFolder sf) { try { if (sf == null) { Logger.Error(LOGNAME, "An error occurred while retrieving SettingFolder", null); return; } if (Db.Load(sf, false) == false) { Logger.Error(LOGNAME, "An error occurred while loading database", null); return; } if (FileDownloader.Start() == false) { Logger.Error(LOGNAME, "An error occurred while starting filedownloader", null); return; } } catch (Exception ex) { Logger.Error(LOGNAME, ex.Message, ex); } }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CoReceiver のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { // ログ出力用の処理です。不要な場合、削除して構いません。 InitLog(args); // まず、プログラム引数を ArgumentCollection クラスを用いて解析します。 // 今回の連携デモでは JSON データの保存されているパスが DocumentName // オプション引数に指定されているため、SettingFolder クラスに対して // Format.Json および DocumentName の値を指定して初期化します。 // その後、Load メソッドを実行する事により JSON 形式の設定内容が読み込まれます。 var src = new ArgumentCollection(args); var settings = new SettingFolder(Format.Json, src.Options["DocumentName"]); settings.Load(); // SettingFolder オブジェクトに対して、プログラム引数の内容を反映させるため // Set メソッドを実行します。 // ただし、Set メソッドは Destination (保存場所)の値を上書きします。 // 今回の連携デモでは、JSON データに記載された場所に PDF ファイルを保存する事を // 想定しているため、ローカル変数にいったん退避させた後、Set メソッド適用後に // 再度その値を反映させる事とします。 var dest = settings.Value.Destination; settings.Set(src); settings.Value.Destination = dest; // 設定が完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); // 最後に、印刷前プログラムが作成した一時ファイルを削除します。 File.Delete(settings.Location); }
public void Set() { var src = new[] { "/DeleteOnClose", "/DocumentName", "(234)?File.txt - Sample Application", "/InputFile", @"C:\WINDOWS\CubePDF\PS3AEE.tmp", "/MachineName", @"\\APOLLON", "/UserName", "clown", "/Exec", @"C:\Program Files\CubePDF\cubepdf.exe", }; var dest = new SettingFolder(Assembly.GetExecutingAssembly()); dest.Set(src); var path = System.IO.Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.Desktop), System.IO.Path.ChangeExtension(dest.DocumentName.Value, ".pdf") ); Assert.That(dest.Digest, Is.Null); Assert.That(dest.DocumentName.Source, Is.EqualTo("(234)?File.txt - Sample Application")); Assert.That(dest.DocumentName.Value, Is.EqualTo("(234)_File.txt")); Assert.That(dest.Value.DeleteSource, Is.True); Assert.That(dest.Value.Source, Is.EqualTo(@"C:\WINDOWS\CubePDF\PS3AEE.tmp")); Assert.That(dest.Value.Destination, Is.EqualTo(path)); }
static void Main(string[] args) => Source.LogError(() => { _ = Logger.ObserveTaskException(); Source.LogInfo(Source.Assembly); Source.LogInfo($"[ {args.Join(" ")} ]"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var src = new SettingFolder(); src.Load(); var im = args.Length > 0 && args[0].FuzzyEquals("/Install"); if (im) { Source.LogInfo("Mode:Install"); } var view = new MainWindow(); var vm = new SettingViewModel(src, SynchronizationContext.Current); vm.Associate.Changed = im; vm.Load(); view.Bind(vm); Application.Run(view); });
/* ----------------------------------------------------------------- */ /// /// Clear /// /// <summary> /// Disables all association settings. /// The method is used when uninstalling. /// </summary> /// /* ----------------------------------------------------------------- */ static void Clear(SettingFolder settings) { foreach (var key in settings.Value.Associate.Value.Keys.ToArray()) { settings.Value.Associate.Value[key] = false; } }
public void Normalize() { var src = new SettingFolder(Assembly.GetExecutingAssembly()); src.Normalize(); var dest = src.Value; Assert.That(dest.Format, Is.EqualTo(Format.Pdf)); Assert.That(dest.Resolution, Is.EqualTo(600)); Assert.That(dest.Orientation, Is.EqualTo(Orientation.Auto)); Assert.That(dest.Destination, Is.Not.Null.And.Not.Empty); var md = dest.Metadata; Assert.That(md.Title, Is.Empty); Assert.That(md.Author, Is.Empty); Assert.That(md.Subject, Is.Empty); Assert.That(md.Keywords, Is.Empty); Assert.That(md.Creator, Is.EqualTo("CubePDF")); Assert.That(md.Version.Major, Is.EqualTo(1)); Assert.That(md.Version.Minor, Is.EqualTo(7)); var pm = dest.Encryption.Permission; Assert.That(pm.Accessibility, Is.EqualTo(PermissionValue.Allow), nameof(pm.Accessibility)); Assert.That(pm.CopyContents, Is.EqualTo(PermissionValue.Deny), nameof(pm.CopyContents)); Assert.That(pm.InputForm, Is.EqualTo(PermissionValue.Deny), nameof(pm.InputForm)); Assert.That(pm.ModifyAnnotations, Is.EqualTo(PermissionValue.Deny), nameof(pm.ModifyAnnotations)); Assert.That(pm.ModifyContents, Is.EqualTo(PermissionValue.Deny), nameof(pm.ModifyContents)); Assert.That(pm.Print, Is.EqualTo(PermissionValue.Deny), nameof(pm.Print)); }
public void Load() { Copy(); var asm = Assembly.GetExecutingAssembly(); var src = new SettingFolder(asm, RootDirectory(), IO); Assert.That(src.TryLoad(), Is.True); Assert.That(src.Value.Width, Is.EqualTo(1100)); Assert.That(src.Value.Height, Is.EqualTo(650)); Assert.That(src.Value.DataDirectory, Is.EqualTo(RootDirectory())); Assert.That(src.Shared.StartUri, Is.EqualTo(new Uri("https://github.com/blog.atom"))); Assert.That(src.Shared.Capacity, Is.EqualTo(5)); Assert.That(src.Shared.EnableNewWindow, Is.True); Assert.That(src.Shared.EnableMonitorMessage, Is.True); Assert.That(src.Shared.LightMode, Is.False); Assert.That(src.Shared.CheckUpdate, Is.True); Assert.That(src.Shared.HighInterval.Value, Is.EqualTo(TimeSpan.FromHours(1))); Assert.That(src.Shared.LowInterval.Value, Is.EqualTo(TimeSpan.FromDays(1))); Assert.That(src.Shared.InitialDelay.Value, Is.EqualTo(TimeSpan.FromSeconds(3))); Assert.That(src.Lock.IsReadOnly, Is.False); Assert.That(src.Lock.IsReadOnly, Is.False); Assert.That(src.Lock.UserName, Is.EqualTo(Environment.UserName)); Assert.That(src.Lock.MachineName, Is.EqualTo(Environment.MachineName)); Assert.That(src.Lock.Sid, Does.StartWith("S-1-5-21")); }
public void Load() { var temp = IO.Combine(Environment.SpecialFolder.CommonApplicationData.GetName(), @"CubeSoft\CubePDF"); var desktop = Environment.SpecialFolder.Desktop.GetName(); var src = new SettingFolder( Assembly.GetExecutingAssembly(), Cube.DataContract.Format.Registry, $@"CubeSoft\CubePDF\{nameof(SettingTest)}", IO ); src.Load(); var dest = src.Value; Assert.That(dest.Format, Is.EqualTo(Format.Pdf)); Assert.That(dest.SaveOption, Is.EqualTo(SaveOption.Overwrite)); Assert.That(dest.Grayscale, Is.False); Assert.That(dest.EmbedFonts, Is.True); Assert.That(dest.ImageFilter, Is.True); Assert.That(dest.Downsampling, Is.EqualTo(Downsampling.None)); Assert.That(dest.Resolution, Is.AtLeast(72)); Assert.That(dest.Orientation, Is.EqualTo(Orientation.Auto)); Assert.That(dest.CheckUpdate, Is.True); Assert.That(dest.Linearization, Is.False); Assert.That(dest.Language, Is.EqualTo(Language.Auto)); Assert.That(dest.PostProcess, Is.EqualTo(PostProcess.None)); Assert.That(dest.UserProgram, Is.Empty); Assert.That(dest.ExplicitDirectory, Is.False); Assert.That(dest.PlatformCompatible, Is.True); Assert.That(dest.DeleteSource, Is.False); Assert.That(dest.SourceVisible, Is.False); Assert.That(dest.Source, Is.Empty); Assert.That(dest.Destination, Is.EqualTo(desktop)); Assert.That(dest.Temp, Is.EqualTo(temp)); Assert.That(dest.Busy, Is.False); var md = dest.Metadata; Assert.That(md.Title, Is.Empty); Assert.That(md.Author, Is.Empty); Assert.That(md.Subject, Is.Empty); Assert.That(md.Keywords, Is.Empty); Assert.That(md.Creator, Is.Empty); Assert.That(md.Version.Major, Is.EqualTo(1)); Assert.That(md.Version.Minor, Is.EqualTo(7)); var ec = dest.Encryption; Assert.That(ec.Enabled, Is.False); Assert.That(ec.Method, Is.EqualTo(EncryptionMethod.Unknown)); Assert.That(ec.OpenWithPassword, Is.False); Assert.That(ec.OwnerPassword, Is.Empty); Assert.That(ec.UserPassword, Is.Empty); var pm = dest.Encryption.Permission; Assert.That(pm.Accessibility, Is.EqualTo(PermissionValue.Allow), nameof(pm.Accessibility)); Assert.That(pm.CopyContents, Is.EqualTo(PermissionValue.Allow), nameof(pm.CopyContents)); Assert.That(pm.InputForm, Is.EqualTo(PermissionValue.Allow), nameof(pm.InputForm)); Assert.That(pm.ModifyAnnotations, Is.EqualTo(PermissionValue.Allow), nameof(pm.ModifyAnnotations)); Assert.That(pm.ModifyContents, Is.EqualTo(PermissionValue.Allow), nameof(pm.ModifyContents)); Assert.That(pm.Print, Is.EqualTo(PermissionValue.Allow), nameof(pm.Print)); }
private static void ScanFiles(DirectoryInfo di, SettingFolder sf) { try { FileInfo[] files = di.GetFiles(); foreach (FileInfo fi in files) { if (fi.Length < Settings.Settings.Current.FileMinSize) { continue; } string fileId = fi.FullName; if (string.IsNullOrEmpty(fileId)) { continue; } DbFile dbf = Db.FileGet(fileId); if (dbf == null) //file not in db { string name = GetFileName(fi, sf); if (CheckFilters(name) == false) { continue; } dbf = new DbFile(); dbf.Id = fileId; dbf.DateLastWriteTime = fi.LastWriteTimeUtc; dbf.Name = name; dbf.Tag = sf.Tag; dbf.Category = sf.Category; dbf.Lang = sf.Lang; dbf.EncryptionMode = sf.EncryptionMode; dbf.Checksum = null; dbf.Size = fi.Length; Db.FileSave(dbf, DbFile.State.QUEUED); Logger.Info(LOGNAME, "Added: " + dbf.Name); } else if (dbf.DateLastWriteTime < fi.LastWriteTimeUtc) { dbf.DateLastWriteTime = fi.LastWriteTimeUtc; dbf.Checksum = null; dbf.Size = fi.Length; dbf.DownloadLink = null; Db.FileSave(dbf, DbFile.State.QUEUED); Logger.Info(LOGNAME, "Updated: " + dbf.Name); } } } catch (System.UnauthorizedAccessException ex) { //nothing to do System.Diagnostics.Debug.WriteLine(ex.Message); } catch (Exception ex) { Logger.Error(LOGNAME, ex.Message, ex); } }
/* ----------------------------------------------------------------- */ /// /// ToOption /// /// <summary> /// Creates a new instance of the CompressionOption class with the /// specified arguments. /// </summary> /// /// <param name="src">Runtime settings.</param> /// <param name="settings">User settings.</param> /// /// <remarks>CompressionOption object.</remarks> /// /* ----------------------------------------------------------------- */ public static CompressionOption ToOption(this CompressRuntimeSetting src, SettingFolder settings) { var filter = Filter.From(settings.Value.GetFilters(settings.Value.Compress.Filtering)); return(src.Format switch { Format.Zip => MakeZip(src, filter, settings.Value.Compress), Format.Sfx => MakeSfx(src, filter), _ => MakeCommon(src, filter), });
public void Set_Empty() { var dest = new SettingFolder(Assembly.GetExecutingAssembly()); dest.Set(Enumerable.Empty<string>()); Assert.That(dest.Digest, Is.Null); Assert.That(dest.DocumentName.Value, Is.EqualTo("Cube.Pdf.Converter.Tests")); Assert.That(dest.Value.DeleteSource, Is.False); Assert.That(dest.Value.Source, Is.Empty); }
public void Create() { var dest = new SettingFolder(); Assert.That(dest.AutoSave, Is.False); Assert.That(dest.AutoSaveDelay, Is.EqualTo(TimeSpan.FromSeconds(1))); Assert.That(dest.Version.ToString(), Is.EqualTo("1.0.2")); Assert.That(dest.Format, Is.EqualTo(DataContract.Format.Registry)); Assert.That(dest.Location, Is.EqualTo(@"CubeSoft\CubeICE\v3")); Assert.That(dest.Value, Is.Not.Null); }
public void Load_NotFound() { var asm = Assembly.GetExecutingAssembly(); var src = new SettingFolder(asm, RootDirectory(), IO); Assert.That(src.TryLoad(), Is.False); Assert.That(src.DataDirectory, Is.EqualTo(RootDirectory())); Assert.That(src.Value, Is.Not.Null, nameof(src.Value)); Assert.That(src.Shared, Is.Not.Null, nameof(src.Shared)); Assert.That(src.Lock, Is.Not.Null, nameof(src.Lock)); }
public void Load_Invalid() { IO.Copy(GetSource("Dummy.txt"), LocalSettingPath(), true); IO.Copy(GetSource("Dummy.txt"), SharedSettingPath(), true); var asm = Assembly.GetExecutingAssembly(); var src = new SettingFolder(asm, RootDirectory(), IO); Assert.That(src.TryLoad(), Is.False); Assert.That(src.DataDirectory, Is.EqualTo(RootDirectory())); Assert.That(src.Value, Is.Not.Null, nameof(src.Value)); Assert.That(src.Shared, Is.Not.Null, nameof(src.Shared)); Assert.That(src.Lock, Is.Not.Null, nameof(src.Lock)); }
public void Create() { var dest = new SettingFolder(Assembly.GetExecutingAssembly()); Assert.That(dest.Format, Is.EqualTo(Cube.DataContract.Format.Registry)); Assert.That(dest.Location, Is.EqualTo(@"CubeSoft\CubePDF\v2")); Assert.That(dest.AutoSave, Is.False); Assert.That(dest.Assembly.GetCompany(), Is.EqualTo("CubeSoft")); Assert.That(dest.Assembly.GetProduct(), Is.EqualTo("Cube.Pdf.Converter.Tests")); Assert.That(dest.DocumentName.Source, Is.Empty); Assert.That(dest.DocumentName.Value, Is.EqualTo("Cube.Pdf.Converter.Tests")); Assert.That(dest.Version.ToString(), Is.EqualTo("1.2.0")); Assert.That(dest.Value, Is.Not.Null); Assert.That(dest.Digest, Is.Null); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// RssFacade オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ private MainFacade Create([CallerMemberName] string name = null) { Copy(name); var asm = Assembly.GetExecutingAssembly(); var setting = new SettingFolder(asm, RootDirectory(name), IO); var invoker = Invoker.Vanilla; var dest = new MainFacade(setting, invoker); setting.Shared.InitialDelay = TimeSpan.FromMinutes(1); dest.Setup(); return(dest); }
public static bool Load(SettingFolder settingFolder, bool startTaskSave) { try { if (File.Exists(Utilities.FileDb)) { List <DbFile> listOfFiles = Serializer.Deserialize <List <DbFile> >(Utilities.FileDb); if (listOfFiles != null) { foreach (DbFile dbf in listOfFiles) { if (dbf != null) { if (settingFolder != null) { if (dbf.Id.StartsWith(settingFolder.Path)) { if (dbf.Status == DbFile.State.UPLOADED || dbf.Status == DbFile.State.SYNC) { dbf.Status = DbFile.State.QUEUED; _dicoOfFiles[dbf.Id] = dbf; } } } else { if (dbf.Status == DbFile.State.ERROR || dbf.Status == DbFile.State.MISSING) { dbf.Status = DbFile.State.QUEUED; } _dicoOfFiles[dbf.Id] = dbf; } } } } } if (startTaskSave && _taskSaveStarted == false) { _taskSave.Start(); } return(true); } catch (Exception ex) { Logger.Error(LOGNAME, ex.Message, ex); } return(false); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// SettingFolder オブジェクトを生成します。 /// </summary> /// /// <param name="args">プログラム引数一覧</param> /// /// <returns>SettingFolder</returns> /// /* ----------------------------------------------------------------- */ protected SettingFolder Create(IEnumerable <string> args) { var asm = typeof(MainWindow).Assembly; var fmt = Cube.DataContract.Format.Registry; var path = $@"CubeSoft\CubePDF\{GetType().Name}"; var dest = new SettingFolder(asm, fmt, path, IO); dest.Load(); dest.Normalize(); dest.Value.Destination = Results; dest.Value.Temp = Get("Temp"); dest.Set(args); return(dest); }
public void Convert_CryptographicException() { var dest = Get($"{nameof(Convert_CryptographicException)}.pdf"); var args = new ArgumentCollection(new[] { "-Digest", "dummy" }, Argument.Windows, true); var settings = new SettingFolder(Assembly.GetExecutingAssembly()); settings.Value.Source = GetSource("Sample.ps"); settings.Value.Destination = dest; settings.Value.PostProcess = PostProcess.None; settings.Set(args); using (var e = new Facade(settings)) { Assert.That(() => e.Invoke(), Throws.TypeOf <CryptographicException>()); } }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// ViewModel オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ protected MainViewModel Create([CallerMemberName] string name = null) { Copy(name); var asm = Assembly.GetExecutingAssembly(); var setting = new SettingFolder(asm, RootDirectory(name), IO); var dest = new MainViewModel(setting, new SynchronizationContext()); var msg = dest.Data.Message; setting.Shared.InitialDelay = TimeSpan.FromMinutes(1); setting.Value.Width = 1024; setting.Value.Height = 768; msg.Value = "Test"; dest.Setup.Execute(null); Assert.That(Wait.For(() => !msg.Value.HasValue()), "Timeout"); return(dest); }
public void VM_NewCategory_Empty() { var s = new SettingFolder(Assembly.GetExecutingAssembly()) { AutoSave = false }; var vm = new MainViewModel(s, new SynchronizationContext()); vm.NewCategory.Execute(null); var dest = vm.Data.Current.Value as RssCategory; Assert.That(dest.Title, Is.EqualTo("新しいフォルダー")); Assert.That(dest.Parent, Is.Null); Assert.That(dest.Count, Is.EqualTo(0), nameof(dest.Count)); Assert.That(dest.Children.Count, Is.EqualTo(0), nameof(dest.Children)); Assert.That(dest.Editing, Is.True, nameof(dest.Editing)); Assert.That(dest.Expanded, Is.False, nameof(dest.Expanded)); }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CubePDF Lite のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { Logger.ObserveTaskException(); Logger.Info(typeof(Program), Assembly.GetExecutingAssembly()); Logger.Info(typeof(Program), $"[ {string.Join(" ", args)} ]"); // 1. 初期設定ではレジストリの下記のサブキーが対象となります。 // HKCU\Software\CubeSoft\CubePDF\v2 // 対象とするサブキーを変更したい場合、コンストラクタで設定します。 // 例えば、HKCU\Software\Foo\Bar を対象とするには下記のように記述して下さい。 // // var settings = new SettingFolder( // Assembly.GetExecutingAssembly(), // Cube.DataContract.Format.Registry, // @"Foo\Bar" // ); // // また、SettingFolder はレジストリ以外に JSON 形式にも対応しています。 // JSON ファイルを対象とする場合、第 2 引数を Cube.DataContract.Format.Json とし、 // 対象とする JSON ファイルへの絶対パスを第 3 引数に指定して下さい。 var settings = new SettingFolder(Assembly.GetExecutingAssembly()); // 2. Load() で対象としているレジストリ等から設定内容を読み込み、 // Set(string[]) で仮想プリンターからの引数を解析します。 settings.Load(); // レジストリの設定をロード settings.Set(args); // 仮想プリンターからの引数を解析 // 3. 設定内容は Value プロパティが保持します。 // Value 中の各種プロパティは、手動で変更する事も可能です。 // 例として、ここでは PostProcess を「何もしない」に設定しています。 // 設定可能な内容については、下記も参照下さい。 // https://docs.cube-soft.jp/entry/cubevp/sdk/converter // // 尚、CubePDF SDK 3.0.0 より Set(string[]) 実行時に // Destination から末尾のファイル名を除去(DocumaneName.Value に置換) // する形に変更されました。そのため、1.0.0 時に Destination に対して // 行っていた処理は不要となりました。 settings.Value.PostProcess = PostProcess.None; // 4. 設定内容のロードが完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); }
private static string GetFileName(FileInfo fi, SettingFolder sf) { string ret = fi.Name; SettingFolder.FileNamingRuleEnum fnr = sf.GetFileNamingRule(); if (fnr == SettingFolder.FileNamingRuleEnum.PARENTNAME) { ret = fi.Directory.Name + fi.Extension; } else if (fnr == SettingFolder.FileNamingRuleEnum.FULLPATH) { ret = fi.FullName.Split(sf.Path)[1].Replace("\\", "/"); } if (Settings.Settings.Current.CleanNames == true) { ret = Renamer.Rename(ret); } return(ret); }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CubePDF Lite のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { // ログ出力用の処理です。不要な場合、削除して構いません。 InitLog(args); // 1. 初期設定ではレジストリの下記のサブキーが対象となります。 // HKCU\Software\CubeSoft\CubePDF\v2 // 対象とするサブキーを変更したい場合、コンストラクタで設定します。 // 例えば、HKCU\Software\Foo\Bar を対象とするには下記のように記述して下さい。 // // var settings = new SettingFolder( // Cube.DataContract.Format.Registry, // @"Foo\Bar" // ); // // また、SettingFolder はレジストリ以外に JSON 形式にも対応しています。 // JSON ファイルを対象とする場合、第 1 引数を Cube.DataContract.Format.Json とし、 // 対象とする JSON ファイルへの絶対パスを第 2 引数に指定して下さい。 var settings = new SettingFolder(); // 2. Load() で対象としているレジストリ等から設定内容を読み込み、 // Set(string[]) で仮想プリンターからの引数を解析します。 // レジストリ等の内容を読み込む必要がない場合、Load() メソッドは省略できます。 settings.Load(); settings.Set(args); // 3. 設定内容は Value プロパティが保持します。 // Value 中の各種プロパティは、手動で変更する事も可能です。 // 例として、ここでは PostProcess を「何もしない」に設定しています。 // 設定可能な内容については、下記も参照下さい。 // https://docs.cube-soft.jp/entry/cubevp/sdk/converter // // 尚、CubePDF SDK 3.0.0 より Set(string[]) 実行時に // Destination から末尾のファイル名を除去(DocumaneName.Value に置換) // する形に変更されました。そのため、1.0.0 時に Destination に対して // 行っていた処理は不要となりました。 settings.Value.PostProcess = PostProcess.None; // 4. 設定内容のロードが完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CoSender のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { // ログ出力用の処理です。不要な場合、削除して構いません。 InitLog(args); // まず、JSON データを保存するための一時ファイル名を決定します。 // 次に、SettingFolder クラスに対して Format.Json および // 先ほど決定したパスを指定して初期化します。 var json = Path.GetTempFileName(); var settings = new SettingFolder(Format.Json, json); // 初期化完了後、Value プロパティに対して必要な設定内容を反映させます。 // 例として、マイ・ドキュメントに cubevp-collaboration.pdf と言う // ファイル名で保存し、保存されたフォルダーを開くように設定してみます。 // 必要な設定が完了したら、Save メソッドで設定内容を JSON 形式で保存します。 var dir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); settings.Value.Destination = Path.Combine(dir, "cubevp-collaboration.pdf"); settings.Value.PostProcess = PostProcess.OpenDirectory; settings.Save(); // PrintDocument クラスの DocumentName プロパティに対して // 最初に決定した一時ファイルのパスを指定します。 // その後、印刷ダイアログの表示等、必要な印刷処理を実行して終了です。 var doc = new PrintDocument { DocumentName = json }; var dialog = new PrintDialog { Document = doc }; if (dialog.ShowDialog() == DialogResult.OK) { doc.PrintPage += PrintDummy; doc.Print(); } else { File.Delete(json); } }
private static void ScanDirs(DirectoryInfo di, SettingFolder sf) { try { DirectoryInfo[] dirs = di.GetDirectories(); ScanFiles(di, sf); foreach (DirectoryInfo diChild in dirs) { ScanDirs(diChild, sf); } } catch (System.UnauthorizedAccessException ex) { //nothing to do System.Diagnostics.Debug.WriteLine(ex.Message); } catch (Exception ex) { Logger.Error(LOGNAME, ex.Message, ex); } }
/* ----------------------------------------------------------------- */ /// /// CreateMainViewModel /// /// <summary> /// Creates a new instance of the MainViewModel class. /// </summary> /// /// <returns>MainViewModel object.</returns> /// /* ----------------------------------------------------------------- */ private MainViewModel CreateMainViewModel() { var src = new SettingFolder( Assembly.GetExecutingAssembly(), DataContract.Format.Registry, @"CubeSoft\Cube.Pdf.Editor.Tests", IO ) { AutoSave = false }; var dest = new MainViewModel(src, new SynchronizationContext()); var dummy = new BitmapImage(new Uri(GetSource("Loading.png"))); dest.Data.Images.Preferences.Dummy = dummy; dest.Data.Images.Preferences.VisibleFirst = 0; dest.Data.Images.Preferences.VisibleLast = 10; return(dest); }
public void VM_Default() { var s = new SettingFolder(Assembly.GetExecutingAssembly()) { AutoSave = false }; var vm = new MainViewModel(s, new SynchronizationContext()); Assert.That(vm.Property.CanExecute(), Is.False); Assert.That(vm.Remove.CanExecute(), Is.False); Assert.That(vm.Rename.CanExecute(), Is.False); Assert.That(vm.Read.CanExecute(), Is.False); Assert.That(vm.Update.CanExecute(), Is.False); Assert.That(vm.Reset.CanExecute(), Is.False); Assert.That(vm.DropTarget, Is.Not.Null); Assert.That(vm.Data.Content.Value, Is.Null); Assert.That(vm.Data.Current.Value, Is.Null); Assert.That(vm.Data.LastEntry.Value, Is.Null); Assert.That(vm.Data.Message.Value, Is.Null); Assert.That(vm.Data.Shared.Value, Is.Not.Null); Assert.That(vm.Data.Lock.Value, Is.Not.Null); }
public void VM_DataDirectory() { var dest = RootDirectory(nameof(ChangeDataFolder)); Execute(vm => { vm.Subscribe <SettingViewModel>(e => ChangeDataFolder(e)); vm.Setting.Execute(null); Assert.That(vm.Data.Local.Value.DataDirectory, Is.EqualTo(dest), nameof(SettingViewModel)); }); Assert.That(IO.Exists(dest), Is.False); var asm = Assembly.GetExecutingAssembly(); var setting = new SettingFolder(asm, RootDirectory(), IO); setting.Load(); Assert.That(setting.DataDirectory, Is.EqualTo(dest), nameof(SettingFolder)); var facade = new MainFacade(setting, Invoker.Vanilla); Assert.That(facade.Data.Root.Flatten().Count(), Is.EqualTo(0)); }