Пример #1
0
        /* ----------------------------------------------------------------- */
        ///
        /// Launch
        ///
        /// <summary>
        /// CubeNote を起動します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        static void Launch(SettingsFolder settings)
        {
            Puts(Properties.Resources.LaunchCubeNote);
            var dir = IoEx.Path.GetDirectoryName(settings.Assembly.Location);
            var exe = IoEx.Path.Combine(dir, "CubeNote.exe");

            System.Diagnostics.Process.Start(exe);
        }
Пример #2
0
        /* ----------------------------------------------------------------- */
        ///
        /// LoadSettings
        ///
        /// <summary>
        /// 設定情報をロードします。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        static SettingsFolder LoadSettings(Assembly assembly)
        {
            Puts(Properties.Resources.LoadSettings);
            var dest = new SettingsFolder(assembly);

            Puts($"Path ... {dest.Root}");
            return(dest);
        }
Пример #3
0
        public void Load()
        {
            var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            var src     = new SettingsFolder(
                Cube.DataContract.Format.Registry,
                $@"CubeSoft\CubePDF\{nameof(SettingsTest)}",
                IO
                );

            src.Load();
            var dest = src.Value;

            Assert.That(dest.Format, Is.EqualTo(Format.Pdf));
            Assert.That(dest.FormatOption, Is.EqualTo(FormatOption.Pdf17));
            Assert.That(dest.SaveOption, Is.EqualTo(SaveOption.Overwrite));
            Assert.That(dest.Grayscale, Is.False);
            Assert.That(dest.EmbedFonts, Is.True);
            Assert.That(dest.ImageCompression, 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.Open));
            Assert.That(dest.UserProgram, Is.Empty);
            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.IsBusy, 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.EqualTo("CubePDF"));

            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.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));
        }
Пример #4
0
 /* ----------------------------------------------------------------- */
 ///
 /// TagCollectionPresenter
 ///
 /// <summary>
 /// オブジェクトを初期化します。
 /// </summary>
 ///
 /* ----------------------------------------------------------------- */
 public TagCollectionPresenter(ComboBox view, PageCollection pages,
                               SettingsFolder settings, EventAggregator events)
     : base(view, pages.Tags, settings, events)
 {
     View.DrawMode    = DrawMode.OwnerDrawFixed;
     View.DrawItem   += View_DrawItem;
     View.MouseWheel += View_MouseWheel;
     Model.Loaded    += Model_Loaded;
 }
        /* ----------------------------------------------------------------- */
        ///
        /// MainViewModel
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /// <param name="model">Model オブジェクト</param>
        ///
        /* ----------------------------------------------------------------- */
        public MainViewModel(SettingsFolder model)
        {
            _model = model;
            _model.PropertyChanged += (s, e) => OnPropertyChanged(e);

            Archive   = new ArchiveViewModel(model.Value.Archive);
            Extract   = new ExtractViewModel(model.Value.Extract);
            Associate = new AssociateViewModel(model.Value.Associate);
            Menu      = new ContextViewModel(model.Value.Menu);
            Shortcut  = new ShortcutViewModel(model.Value.Shortcut);
        }
Пример #6
0
        /* ----------------------------------------------------------------- */
        ///
        /// SettingsPresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public SettingsPresenter(SettingsForm view, SettingsFolder settings,
                                 EventAggregator events)
            : base(view, settings.User, settings, events)
        {
            View.Apply           += View_Apply;
            View.Cancel          += View_Cancel;
            View.Reset           += View_Reset;
            View.PropertyChanged += View_PropertyChanged;

            _backup.Assign(Model);
        }
Пример #7
0
        public void Load_NotFound()
        {
            var asm = Assembly.GetExecutingAssembly();
            var src = new SettingsFolder(asm, RootDirectory(), IO);

            src.LoadOrDefault(new LocalSettings());

            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));
        }
Пример #8
0
        public void Set_Empty()
        {
            var dest = new SettingsFolder();

            dest.Set(new ArgumentCollection(new string[0], '/', true));

            Assert.That(dest.MachineName, Is.EqualTo(Environment.MachineName));
            Assert.That(dest.UserName, Is.EqualTo(Environment.UserName));
            Assert.That(dest.DocumentName.Name, Is.EqualTo("CubePDF"));
            Assert.That(dest.Value.DeleteSource, Is.False);
            Assert.That(dest.Value.Source, Is.Empty);
        }
        /* ----------------------------------------------------------------- */
        ///
        /// CreateSettings
        ///
        /// <summary>
        /// SettingsFolder オブジェクトを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        protected SettingsFolder CreateSettings()
        {
            var asm  = Assembly.GetExecutingAssembly();
            var dc   = Cube.DataContract.Format.Registry;
            var dest = new SettingsFolder(asm, dc, SubKeyName, IO)
            {
                AutoSave = false
            };

            Assert.That(dest.Location, Does.Not.StartsWith("Software"));
            return(dest);
        }
Пример #10
0
        /* ----------------------------------------------------------------- */
        ///
        /// Settings
        ///
        /// <summary>
        /// 設定用ダイアログを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public static SettingsForm Settings(Form owner, SettingsFolder model)
        {
            var dest = new SettingsForm(model.User);

            dest.DataFolder    = model.Root;
            dest.Product       = new AssemblyReader(model.Assembly).Product;
            dest.Version       = model.Version.ToString(true);
            dest.StartPosition = FormStartPosition.Manual;
            dest.Location      = CreateLocation(owner);

            return(dest);
        }
Пример #11
0
        /* ----------------------------------------------------------------- */
        ///
        /// TextVisualPresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public TextVisualPresenter(TextControl view, SettingsFolder model,
                                   EventAggregator events)
            : base(view, model.User, model, events)
        {
            Model.PropertyChanged += Model_PropertyChanged;

            this.LogWarn(() =>
            {
                UpdateView();
                View.ResetViewWidth();
            });
        }
        public void Create()
        {
            var asm  = Assembly.GetExecutingAssembly();
            var dest = new SettingsFolder(asm, IO);

            Assert.That(dest.AutoSave, Is.False);
            Assert.That(dest.AutoSaveDelay, Is.EqualTo(TimeSpan.FromSeconds(1)));
            Assert.That(dest.Version.ToString(), Is.EqualTo("0.9.1β"));
            Assert.That(dest.Format, Is.EqualTo(Cube.DataContract.Format.Registry));
            Assert.That(dest.Location, Is.EqualTo(@"CubeSoft\CubeICE\v3"));
            Assert.That(dest.Value, Is.Not.Null);
        }
Пример #13
0
        public void Create_Json()
        {
            var settings = new SettingsFolder <Person>(SettingsType.Json);
            var root     = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

            Assert.That(settings.Type, Is.EqualTo(SettingsType.Json));
            Assert.That(settings.Path, Does.StartWith(root));
            Assert.That(settings.Path, Does.EndWith(AssemblyReader.Default.Product));
            Assert.That(settings.Company, Is.EqualTo(AssemblyReader.Default.Company));
            Assert.That(settings.Product, Is.EqualTo(AssemblyReader.Default.Product));
            Assert.That(settings.Version.Number, Is.EqualTo(AssemblyReader.Default.Version));
            Assert.That(settings.Value, Is.Not.Null);
        }
Пример #14
0
        /* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// Presenter オブジェクトを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private ExtractPresenter Create(Request request)
        {
            var a = Assembly.GetExecutingAssembly();
            var v = Views.CreateProgressView();
            var e = new Aggregator();
            var s = new SettingsFolder(a, IO);

            var dest = new ExtractPresenter(v, request, s, e);

            Assert.That(dest.Model.Interval.TotalMilliseconds, Is.EqualTo(100).Within(1));
            dest.Model.Interval = TimeSpan.FromMilliseconds(20);
            return(dest);
        }
Пример #15
0
        /* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// RssFacade オブジェクトを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private MainFacade Create([CallerMemberName] string name = null)
        {
            Copy(name);

            var asm      = Assembly.GetExecutingAssembly();
            var settings = new SettingsFolder(asm, RootDirectory(name), IO);
            var context  = SynchronizationContext.Current;
            var dest     = new MainFacade(settings, context);

            settings.Shared.InitialDelay = TimeSpan.FromMinutes(1);

            dest.Setup();
            return(dest);
        }
Пример #16
0
        /* ----------------------------------------------------------------- */
        ///
        /// LoadIndices
        ///
        /// <summary>
        /// インデックス情報をロードします。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        static PageCollection LoadIndices(SettingsFolder settings)
        {
            Puts(Properties.Resources.LoadIndices);
            var dest = new PageCollection(settings.Root);

            try { dest.Load(); }
            catch (Exception err)
            {
                Puts(Properties.Resources.ErrorIndex);
                Puts(err.ToString());
            }
            Puts($"Count ... {dest.Count}");
            return(dest);
        }
Пример #17
0
        /* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// SettingsFolder オブジェクトを生成します。
        /// </summary>
        ///
        /// <param name="args">プログラム引数一覧</param>
        ///
        /// <returns>SettingsFolder</returns>
        ///
        /* ----------------------------------------------------------------- */
        protected SettingsFolder Create(string[] args)
        {
            var path = $@"CubeSoft\CubePDF\{GetType().Name}";
            var dest = new SettingsFolder(DataContract.Format.Registry, path, IO)
            {
                WorkDirectory = GetResultsWith("Tmp"),
            };

            dest.Load();
            dest.Value.Destination = Results;
            dest.Set(new ArgumentCollection(args, '/', true));

            return(dest);
        }
Пример #18
0
        public void Load_Invalid()
        {
            IO.Copy(GetExamplesWith("Dummy.txt"), LocalSettingsPath(), true);
            IO.Copy(GetExamplesWith("Dummy.txt"), SharedSettingsPath(), true);
            var asm = Assembly.GetExecutingAssembly();
            var src = new SettingsFolder(asm, RootDirectory(), IO);

            src.LoadOrDefault(new LocalSettings());

            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));
        }
Пример #19
0
        static void Main(string[] args)
        {
            try
            {
                if (args.Length <= 0)
                {
                    return;
                }

                var asm = Assembly.GetExecutingAssembly();

                Logger.Configure();
                Logger.ObserveTaskException();
                Logger.Info(typeof(Program), asm);
                Logger.Info(typeof(Program), $"Arguments:{string.Join(" ", args)}");

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                var s = new SettingsFolder(asm, new AfsIO());
                var e = new Aggregator();
                var v = new ProgressForm();
                var m = new Request(args);

                s.Load();

                switch (m.Mode)
                {
                case Mode.Archive:
                    using (var _ = new ArchivePresenter(v, m, s, e)) Application.Run(v);
                    break;

                case Mode.Extract:
                    if (m.Sources.Count() > 1 && s.Value.Extract.Bursty && !m.SuppressRecursive)
                    {
                        Extract(m, asm);
                    }
                    else
                    {
                        using (var _ = new ExtractPresenter(v, m, s, e)) Application.Run(v);
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception err) { Log(err); }
        }
Пример #20
0
        /* ----------------------------------------------------------------- */
        ///
        /// TextEditPresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public TextPresenter(TextControl view, PageCollection model,
                             SettingsFolder settings, EventAggregator events)
            : base(view, model, settings, events)
        {
            Events.Refresh.Subscribe(Refresh_Handle);
            Events.Undo.Subscribe(Undo_Handle);
            Events.Redo.Subscribe(Redo_Handle);

            View.DoubleClick += View_DoubleClick;
            View.Visible      = (Settings.Current.Page != null);

            Settings.Current.PageChanged += Settings_PageChanged;

            InitializeTextMenu();
        }
Пример #21
0
        public void ReLoad()
        {
            var count = 0;

            var settings = new SettingsFolder <Person>(SettingsType.Registry, LoadKeyName);

            settings.Loaded  += (s, e) => ++ count;
            settings.AutoSave = false;

            settings.Load();
            settings.Value.Name = "Before ReLoad";
            settings.Load();

            Assert.That(count, Is.EqualTo(2));
            Assert.That(settings.Value.Name, Is.EqualTo("佐藤栄作"));
        }
Пример #22
0
        static void Main(string[] args)
        {
            var type = typeof(Program);

            try
            {
                Logger.Configure();
                Logger.Info(type, Assembly.GetExecutingAssembly());
                Logger.Info(type, string.Join(" ", args));

                var asm      = Assembly.GetExecutingAssembly();
                var settings = new SettingsFolder(asm, new AfsIO());
                if (args.Length > 0 && args[0].ToLowerInvariant() == "/uninstall")
                {
                    Clear(settings);
                }
                else
                {
                    settings.Load();
                }

                var dir  = System.IO.Path.GetDirectoryName(asm.Location);
                var exe  = System.IO.Path.Combine(dir, "cubeice.exe");
                var icon = $"{exe},{settings.Value.Associate.IconIndex}";

                Logger.Info(type, $"FileName:{exe}");
                Logger.Info(type, $"IconLocation:{icon}");

                var registrar = new AssociateRegistrar(exe)
                {
                    IconLocation = icon,
                    ToolTip      = settings.Value.ToolTip,
                };

                registrar.Arguments = PresetMenu.Extract.ToArguments();
                registrar.Update(settings.Value.Associate.Value);

                Shell32.NativeMethods.SHChangeNotify(
                    0x08000000, // SHCNE_ASSOCCHANGED
                    0x00001000, // SHCNF_FLUSH
                    IntPtr.Zero,
                    IntPtr.Zero
                    );
            }
            catch (Exception err) { Logger.Error(type, err); }
        }
Пример #23
0
        /* ----------------------------------------------------------------- */
        ///
        /// ArchivePresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /// <param name="view">View オブジェクト</param>
        /// <param name="args">コマンドライン</param>
        /// <param name="settings">ユーザ設定</param>
        /// <param name="ea">イベント集約オブジェクト</param>
        ///
        /* ----------------------------------------------------------------- */
        public ArchivePresenter(IProgressView view, Request args,
                                SettingsFolder settings, IAggregator ea) :
            base(view, new ArchiveFacade(args, settings), settings, ea)
        {
            // View
            View.Logo   = Properties.Resources.HeaderArchive;
            View.Status = Properties.Resources.MessagePreArchive;

            // Model
            var model = Model as ArchiveFacade;

            model.DestinationRequested += WhenDestinationRequested;
            model.PasswordRequested    += WhenPasswordRequested;
            model.Progress             += WhenProgress;
            model.RtSettingsRequested  += WhenRtSettingsRequested;
            model.MailRequested        += WhenMailRequested;
        }
Пример #24
0
        public void Create()
        {
            var dest = new SettingsFolder();

            Assert.That(dest.Format, Is.EqualTo(Cube.DataContract.Format.Registry));
            Assert.That(dest.Location, Is.EqualTo(@"CubeSoft\CubePDF\v2"));
            Assert.That(dest.WorkDirectory, Is.Not.Null.And.Not.Empty);
            Assert.That(dest.AutoSave, Is.False);
            Assert.That(dest.Assembly.Company, Is.EqualTo("CubeSoft"));
            Assert.That(dest.Assembly.Product, Is.EqualTo("CubePDF"));
            Assert.That(dest.MachineName, Is.EqualTo(Environment.MachineName));
            Assert.That(dest.UserName, Is.EqualTo(Environment.UserName));
            Assert.That(dest.DocumentName.Value, Is.Empty);
            Assert.That(dest.DocumentName.Name, Is.EqualTo("CubePDF"));
            Assert.That(dest.Version.ToString(), Is.EqualTo("1.0.0RC19"));
            Assert.That(dest.Value, Is.Not.Null);
        }
Пример #25
0
        public void Create_Registry()
        {
            var count    = 0;
            var settings = new SettingsFolder <Person>();

            settings.Loaded += (s, e) => ++ count;
            settings.Load();

            Assert.That(count, Is.EqualTo(1));
            Assert.That(settings.Type, Is.EqualTo(SettingsType.Registry));
            Assert.That(settings.Path, Does.StartWith("Software"));
            Assert.That(settings.Path, Does.EndWith(AssemblyReader.Default.Product));
            Assert.That(settings.Company, Is.EqualTo(AssemblyReader.Default.Company));
            Assert.That(settings.Product, Is.EqualTo(AssemblyReader.Default.Product));
            Assert.That(settings.Version.Number, Is.EqualTo(AssemblyReader.Default.Version));
            Assert.That(settings.Value, Is.Not.Null);
        }
        /* ----------------------------------------------------------------- */
        ///
        /// ExtractPresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /// <param name="view">View オブジェクト</param>
        /// <param name="model">コマンドライン</param>
        /// <param name="settings">ユーザ設定</param>
        /// <param name="ea">イベント集約オブジェクト</param>
        ///
        /* ----------------------------------------------------------------- */
        public ExtractPresenter(IProgressView view, Request model,
                                SettingsFolder settings, IAggregator ea) :
            base(view, new ExtractFacade(model, settings), settings, ea)
        {
            var fs = Model.TryCast <ExtractFacade>();

            // View
            View.FileName = Model.IO.Get(fs.Source).Name;
            View.Logo     = Properties.Resources.HeaderExtract;
            View.Status   = Properties.Resources.MessagePreExtract;

            // Model
            fs.DestinationRequested += WhenDestinationRequested;
            fs.PasswordRequested    += WhenPasswordRequested;
            fs.OverwriteRequested   += WhenOverwriteRequested;
            fs.Progress             += WhenProgress;
            fs.ProgressReset        += WhenProgressReset;
        }
Пример #27
0
        /* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// ViewModel オブジェクトを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        protected MainViewModel Create([CallerMemberName] string name = null)
        {
            Copy(name);

            var asm      = Assembly.GetExecutingAssembly();
            var settings = new SettingsFolder(asm, RootDirectory(name), IO);
            var dest     = new MainViewModel(settings);
            var msg      = dest.Data.Message;

            settings.Shared.InitialDelay = TimeSpan.FromMinutes(1);
            settings.Value.Width         = 1024;
            settings.Value.Height        = 768;

            msg.Value = "Test";
            dest.Setup.Execute(null);
            Assert.That(Wait.For(() => !msg.Value.HasValue()), "Timeout");
            return(dest);
        }
Пример #28
0
        /* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// Gets a new instance of the MainViewModel class.
        /// </summary>
        ///
        /// <returns>MainViewModel object.</returns>
        ///
        /* ----------------------------------------------------------------- */
        private MainViewModel Create()
        {
            var dummy = new BitmapImage(new Uri(GetExamplesWith("Loading.png")));
            var asm   = Assembly.GetExecutingAssembly();
            var fmt   = DataContract.Format.Registry;
            var path  = @"CubeSoft\Cube.Pdf.Tests.Editor";
            var src   = new SettingsFolder(asm, fmt, path, IO)
            {
                AutoSave = false
            };
            var dest = new MainViewModel(src);

            dest.Data.Images.Preferences.Dummy        = dummy;
            dest.Data.Images.Preferences.VisibleFirst = 0;
            dest.Data.Images.Preferences.VisibleLast  = 10;

            return(dest);
        }
Пример #29
0
        /* ----------------------------------------------------------------- */
        ///
        /// MenuPresenter
        ///
        /// <summary>
        /// オブジェクトを初期化します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public MenuPresenter(MenuControl view, PageCollection model,
                             SettingsFolder settings, EventAggregator events)
            : base(view, model, settings, events)
        {
            Events.Print.Subscribe(Print_Handle);
            Events.Settings.Subscribe(Settings_Handle);
            Events.TagSettings.Subscribe(TagSettings_Handle);
            Events.Web.Subscribe(Web_Handle);
            Events.Google.Subscribe(Google_Handle);

            View.UndoMenu.Click     += (s, e) => Events.Undo.Publish();
            View.RedoMenu.Click     += (s, e) => Events.Redo.Publish();
            View.ExportMenu.Click   += (s, e) => Events.Export.Publish(EventAggregator.Selected);
            View.PrintMenu.Click    += (s, e) => Events.Print.Publish();
            View.SettingsMenu.Click += (s, e) => Events.Settings.Publish();
            View.LogoMenu.Click     += View_LogoMenu;

            Settings.Current.PropertyChanged += Settings_CurrentChanged;
        }
Пример #30
0
        public void Load_Registry()
        {
            using (var s = new SettingsFolder <Person>(SettingsType.Registry, LoadKeyName))
            {
                s.AutoSave = false;
                s.Load();

                Assert.That(s.Value.Name, Is.EqualTo("佐藤栄作"));
                Assert.That(s.Value.Age, Is.EqualTo(52));
                Assert.That(s.Value.Sex, Is.EqualTo(Sex.Male));
                Assert.That(s.Value.Reserved, Is.EqualTo(true));
                Assert.That(s.Value.Creation, Is.EqualTo(new DateTime(2015, 3, 16, 2, 32, 26, DateTimeKind.Utc).ToLocalTime()));
                Assert.That(s.Value.Identification, Is.EqualTo(1357));
                Assert.That(s.Value.Secret, Is.EqualTo("secret message"));
                Assert.That(s.Value.Phone.Type, Is.EqualTo("Mobile"));
                Assert.That(s.Value.Phone.Value, Is.EqualTo("090-1234-5678"));
                Assert.That(s.Value.Email.Type, Is.EqualTo("Email"));
                Assert.That(s.Value.Email.Value, Is.Null.Or.Empty);
            }
        }