/* thisaddin.cs * part of zaaReloaded2 * * Copyright 2015 Daniel Kraus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; using System.IO; using Word = Microsoft.Office.Interop.Word; using Office = Microsoft.Office.Core; using Microsoft.Office.Tools.Word; using Bovender.Versioning; using Bovender.Mvvm.Messaging; using zaaReloaded2.ExceptionHandler; namespace zaaReloaded2 { public partial class ThisAddIn { /// /// Gets the subdirectory for addin data in the user profile directory. /// public static string Subdir { get { return Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "zaaReloaded2"); } } private void ThisAddIn_Startup(object sender, System.EventArgs e) { Bovender.ExceptionHandler.CentralHandler.ManageExceptionCallback += CentralHandler_ManageExceptionCallback; } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { if (_updaterVM != null && _updaterVM.IsUpdatePending) { if (_updaterVM.InstallUpdateCommand.CanExecute(null)) _updaterVM.InstallUpdateCommand.Execute(null); } } #region Properties public Ribbon Ribbon { get { if (_ribbon == null) { _ribbon = new Ribbon(); } return _ribbon; } } #endregion #region Ribbon protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { return Ribbon; } #endregion #region Updater void CheckForUpdates() { if (DateTime.Today == Properties.Settings.Default.LastUpdateCheck.Date) return; Properties.Settings.Default.LastUpdateCheck = DateTime.Today; Properties.Settings.Default.Save(); _updaterVM = new UpdaterViewModel(new Updater.Updater()); if (!_updaterVM.CanCheckForUpdate) return; _updaterVM.UpdateAvailableMessage.Sent += UpdateAvailableMessage_Sent; _updaterVM.CheckForUpdateCommand.Execute(null); } void UpdateAvailableMessage_Sent(object sender, MessageArgs e) { UpdaterViewModel uvm = e.Content.ViewModel as UpdaterViewModel; uvm.DestinationFolder = System.IO.Path.GetTempPath(); uvm.DownloadUpdateCommand.Execute(null); } #endregion #region Exception handler void CentralHandler_ManageExceptionCallback(object sender, Bovender.ExceptionHandler.ManageExceptionEventArgs e) { e.IsHandled = true; ExceptionViewModel vm = new ExceptionViewModel(e.Exception); vm.InjectInto().ShowDialog(); } #endregion #region Private fields Ribbon _ribbon; UpdaterViewModel _updaterVM; #endregion #region VSTO generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InternalStartup() { this.Startup += new System.EventHandler(ThisAddIn_Startup); this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); } #endregion } }