private void UserControl_Drop(object sender, DragEventArgs e) { try { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (string file in files) { string fileExtension = System.IO.Path.GetExtension(file); if (fileExtension.Contains("sqlite")) { viewModel.DBFile = file; viewModel.RvtSheetData = SheetDataReader.ReadSheetDatabase(file, viewModel.RvtSheetData); viewModel.RvtSheetData.SelectedDisciplineIndex = 0; viewModel.DatabaseOpened = true; viewModel.StatusText = file; bool opened = SheetDataWriter.OpenDatabase(file); break; } } } } catch (Exception ex) { MessageBox.Show("Failed to drop files.\n" + ex.Message, "File Drop", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public void Execute(UpdaterData data) { try { if (IsSheetManagerOn) { return; } if (SheetDataWriter.dbFile != configuration.DatabaseFile) { SheetDataWriter.OpenDatabase(configuration.DatabaseFile); } Document doc = data.GetDocument(); foreach (ElementId sheetId in data.GetAddedElementIds()) { ViewSheet viewSheet = doc.GetElement(sheetId) as ViewSheet; if (null != viewSheet) { bool inserted = InsertSheet(viewSheet); } } foreach (ElementId sheetId in data.GetModifiedElementIds()) { ViewSheet viewSheet = doc.GetElement(sheetId) as ViewSheet; if (null != viewSheet) { List <ElementId> parameterChanged = new List <ElementId>(); foreach (ElementId paramId in sheetParameters.Keys) { if (data.IsChangeTriggered(sheetId, Element.GetChangeTypeParameter(paramId))) { parameterChanged.Add(paramId); } } bool updated = UpdateSheet(viewSheet, parameterChanged); } } foreach (ElementId sheetId in data.GetDeletedElementIds()) { //bool deleted = DeleteSheet(sheetId); } } catch (Exception ex) { string message = ex.Message; } }
public void OpenDBExecuted(object param) { try { OpenFileDialog openDialog = new OpenFileDialog(); openDialog.Title = "Open a Sheet Database File"; openDialog.DefaultExt = ".sqlite"; openDialog.Filter = "SQLITE File (.sqlite)|*.sqlite"; if ((bool)openDialog.ShowDialog()) { this.DBFile = openDialog.FileName; this.RvtSheetData = SheetDataReader.ReadSheetDatabase(dbFile, rvtSheetData); this.RvtSheetData.SelectedDisciplineIndex = 0; this.DatabaseOpened = true; this.StatusText = dbFile; bool opened = SheetDataWriter.OpenDatabase(dbFile); } } catch (Exception ex) { MessageBox.Show("Failed to open the database file.\n" + ex.Message, "Open Database File", MessageBoxButton.OK, MessageBoxImage.Warning); } }
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); } }