private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { SheetDataWriter.CloseDatabse(); }
public void DocumentOpened(object sender, DocumentOpenedEventArgs args) { try { var doc = args.Document; if (null == doc) { return; } var sheetConfig = new SheetManagerConfiguration(doc); if (doc.IsWorkshared) { if (!ServerUtilities.GetByCentralPath(sheetConfig.CentralPath, "configurations/centralpath", out Configuration configFound)) { return; } if (null != configFound) { foreach (var updater in configFound.Updaters) { if (updater.UpdaterName != "Sheet Tracker") { continue; } sheetConfig.AutoUpdate = updater.IsUpdaterOn; sheetConfig.DatabaseFile = configFound.SheetDatabase; break; } } } if (sheetConfig.AutoUpdate && !string.IsNullOrEmpty(sheetConfig.DatabaseFile)) { if (File.Exists(sheetConfig.DatabaseFile)) { //update project info var dbManager = new UpdaterDataManager(sheetConfig.DatabaseFile); var projects = dbManager.GetLinkedProjects(); var projectFound = projects.Where(x => x.FilePath == sheetConfig.CentralPath).ToList(); if (projectFound.Any()) { var linkedProject = projectFound.First(); sheetConfig.ModelId = linkedProject.Id; } else { var dbOpened = SheetDataWriter.OpenDatabase(sheetConfig.DatabaseFile); if (dbOpened) { var linkedProject = new LinkedProject(sheetConfig.ModelId) { FilePath = sheetConfig.CentralPath, ProjectNumber = doc.ProjectInformation.Number, ProjectName = doc.ProjectInformation.Name, LinkedBy = Environment.UserName, LinkedDate = DateTime.Now }; SheetDataWriter.ChangeLinkedProject(linkedProject, CommandType.INSERT); SheetDataWriter.CloseDatabse(); } } UpdaterUtil.RegisterUpdaters(doc, sheetConfig); } } if (!configDictionary.ContainsKey(sheetConfig.CentralPath)) { configDictionary.Add(sheetConfig.CentralPath, sheetConfig); } } catch (Exception ex) { Log.AppendLog(LogMessageType.EXCEPTION, ex.Message); } }