private void SaveDates(DateTime[] dates) { try { if (!Directory.Exists(_path)) { if (dates.IsEmpty()) return; Directory.CreateDirectory(_path); } var stream = new MemoryStream(); stream.WriteByte((byte)_dateVersion.Major); stream.WriteByte((byte)_dateVersion.Minor); stream.Write(dates.Length); foreach (var date in dates) stream.Write(date); lock (_cacheSync) { stream.Position = 0; stream.Save(GetDatesCachePath()); } } catch (UnauthorizedAccessException) { // если папка с данными с правами только на чтение } }
private void Save() { try { lock (_timerSync) { if (!_needToSave) return; _needToSave = false; } CultureInfo.InvariantCulture.DoInCulture(() => { var root = new SettingsStorage(); root.SetValue("DriveCache", DriveCache.Instance.Save()); root.SetValue("DatabaseConnectionCache", DatabaseConnectionCache.Instance.Save()); var mainWindow = new SettingsStorage(); mainWindow.SetValue("Width", MainWindow.Width); mainWindow.SetValue("Height", MainWindow.Height); mainWindow.SetValue("Location", MainWindow.GetLocation()); mainWindow.SetValue("WindowState", MainWindow.WindowState); root.SetValue("mainWindow", mainWindow); var navBar = new SettingsStorage(); navBar.SetValue("IsMinimized", MainWindow.NavigationBar.IsMinimized); navBar.SetValue("Width", MainWindow.NavigationBar.ContentWidth); navBar.SetValue("SelectedPane", MainWindow.NavigationBar.SelectedIndex); navBar.SetValue("SelectedSource", MainWindow.CurrentSources.SelectedIndex); navBar.SetValue("SelectedConverter", MainWindow.CurrentConverters.SelectedIndex); root.SetValue("navBar", navBar); var panes = new List<SettingsStorage>(); foreach (var paneWnd in MainWindow.DockSite.DocumentWindows.OfType<PaneWindow>()) { var settings = paneWnd.Pane.SaveEntire(false); settings.SetValue("isActive", MainWindow.DockSite.ActiveWindow == paneWnd); panes.Add(settings); } root.SetValue("panes", panes); new XmlSerializer<SettingsStorage>().Serialize(root, _configFile); if (MainWindow.DockSite != null) { var stream = new MemoryStream(); LayoutSerializer.SaveToStream(stream, MainWindow.DockSite); stream.Position = 0; stream.Save(_layoutFile); } }); } catch (Exception ex) { this.AddErrorLog(ex); } }
private void SaveDates(DateTime[] dates) { try { if (!Directory.Exists(_path)) { if (dates.IsEmpty()) return; Directory.CreateDirectory(_path); } var stream = new MemoryStream(); //stream.WriteByte((byte)_dateVersion.Major); //stream.WriteByte((byte)_dateVersion.Minor); //stream.Write(dates.Length); CultureInfo.InvariantCulture.DoInCulture(() => { var writer = new StreamWriter(stream) { AutoFlush = true }; foreach (var date in dates) { writer.WriteLine(date.ToString(_dateFormat)); //stream.Write(date); } }); lock (_cacheSync) { stream.Position = 0; stream.Save(_datesPath); } } catch (UnauthorizedAccessException) { // если папка с данными с правами только на чтение } }