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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }