private static void ReadLinkedProjects(ref RevitSheetData sheetData) { try { sheetData.LinkedProjects.Clear(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM LinkedProjects"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { LinkedProject project = new LinkedProject(); project.Id = new Guid(reader.GetString(reader.GetOrdinal("LinkedProject_Id"))); project.ProjectNumber = reader.GetString(reader.GetOrdinal("LinkedProject_Number")); project.ProjectName = reader.GetString(reader.GetOrdinal("LinkedProject_Name")); project.FilePath = reader.GetString(reader.GetOrdinal("LinkedProject_FilePath")); project.LinkedDate = reader.GetDateTime(reader.GetOrdinal("LinkedProject_LinkedDate")); project.LinkedBy = reader.GetString(reader.GetOrdinal("LinkedProject_LinkedBy")); sheetData.LinkedProjects.Add(project); } } } } catch (Exception ex) { string message = ex.Message; } }
public List <LinkedProject> GetLinkedProjects() { List <LinkedProject> projects = new List <LinkedProject>(); try { if (null != connection && null != command) { using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM LinkedProjects"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { LinkedProject project = new LinkedProject(); project.Id = new Guid(reader.GetString(reader.GetOrdinal("LinkedProject_Id"))); project.ProjectNumber = reader.GetString(reader.GetOrdinal("LinkedProject_Number")); project.ProjectName = reader.GetString(reader.GetOrdinal("LinkedProject_Name")); project.FilePath = reader.GetString(reader.GetOrdinal("LinkedProject_FilePath")); project.LinkedDate = reader.GetDateTime(reader.GetOrdinal("LinkedProject_LinkedDate")); project.LinkedBy = reader.GetString(reader.GetOrdinal("LinkedProject_LinkedBy")); projects.Add(project); } } } } } catch (Exception ex) { string message = ex.Message; } return(projects); }
public static bool ChangeLinkedProject(LinkedProject item, CommandType cmdType) { bool result = false; try { if (null != connection && null != command) { switch (cmdType) { case CommandType.INSERT: command.CommandText = @"INSERT INTO LinkedProjects (LinkedProject_Id, LinkedProject_Number, LinkedProject_Name, LinkedProject_FilePath, LinkedProject_LinkedDate, LinkedProject_LinkedBy)" + "VALUES ('" + item.Id.ToString() + "', '" + item.ProjectNumber + "', '" + item.ProjectName + "', '" + item.FilePath + "', @date, '" + item.LinkedBy + "')"; command.Parameters["@date"].Value = item.LinkedDate; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.UPDATE: command.CommandText = @"UPDATE LinkedProjects SET LinkedProject_Number = '" + item.ProjectNumber + "', LinkedProject_Name = '" + item.ProjectName + "', " + "LinkedProject_FilePath ='" + item.FilePath + "', LinkedProject_LinkedDate = @date, LinkedProject_LinkedBy = '" + item.LinkedBy + "'" + " WHERE LinkedProject_Id = '" + item.Id.ToString() + "'"; command.Parameters["@date"].Value = item.LinkedDate; if (command.ExecuteNonQuery() > 0) { result = true; } break; case CommandType.DELETE: command.CommandText = "DELETE FROM LinkedProjects WHERE LinkedProject_Id = '" + item.Id.ToString() + "'"; if (command.ExecuteNonQuery() > 0) { result = true; } break; } } } catch (Exception ex) { string message = ex.Message; } return(result); }
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); } }
private static void ReadRevisions(ref RevitSheetData sheetData) { try { ObservableCollection <LinkedRevision> linkedRevisions = new ObservableCollection <LinkedRevision>(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM LinkedRevisions"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { LinkedRevision lRevision = new LinkedRevision(); lRevision.Id = reader.GetGuid(reader.GetOrdinal("LinkedRevision_Id")); lRevision.RevisionId = reader.GetGuid(reader.GetOrdinal("LinkedRevision_Revision_Id")); lRevision.Sequence = reader.GetInt32(reader.GetOrdinal("LinkedRevision_Sequence")); lRevision.Number = reader.GetString(reader.GetOrdinal("LinkedRevision_Number")); lRevision.NumberType = (NumberType)Enum.Parse(typeof(NumberType), reader.GetString(reader.GetOrdinal("LinkedRevision_NumberType"))); Guid projectId = reader.GetGuid(reader.GetOrdinal("LinkedRevision_Project_Id")); var projectFound = from project in sheetData.LinkedProjects where project.Id == projectId select project; if (projectFound.Count() > 0) { LinkedProject project = projectFound.First(); lRevision.LinkProject = project; } lRevision.LinkedElementId = reader.GetString(reader.GetOrdinal("LinkedRevision_Element_Id")); lRevision.IsSource = reader.GetBoolean(reader.GetOrdinal("LinkedRevision_IsSource")); linkedRevisions.Add(lRevision); } } } ObservableCollection <RevisionDocument> revisionDocuments = new ObservableCollection <RevisionDocument>(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM RevisionDocuments"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { RevisionDocument document = new RevisionDocument(); document.Id = reader.GetGuid(reader.GetOrdinal("Document_Id")); document.Title = reader.GetString(reader.GetOrdinal("Document_Title")); document.Path = reader.GetString(reader.GetOrdinal("Document_Path")); if (reader["Document_Contents"] != System.DBNull.Value) { document.Contents = (byte[])reader["Document_Contents"]; } revisionDocuments.Add(document); } } } sheetData.Revisions.Clear(); using (SQLiteCommand cmd = new SQLiteCommand(connection)) { cmd.CommandText = "SELECT * FROM Revisions"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { RevitRevision revision = new RevitRevision(); revision.Id = reader.GetGuid(reader.GetOrdinal("Revision_Id")); revision.Description = reader.GetString(reader.GetOrdinal("Revision_Description")); revision.IssuedBy = reader.GetString(reader.GetOrdinal("Revision_IssuedBy")); revision.IssuedTo = reader.GetString(reader.GetOrdinal("Revision_IssuedTo")); revision.Date = reader.GetString(reader.GetOrdinal("Revision_Date")); Guid documentId = reader.GetGuid(reader.GetOrdinal("Revision_Document_Id")); var documentFound = from document in revisionDocuments where document.Id == documentId select document; if (documentFound.Count() > 0) { revision.Document = documentFound.First(); } var linkedRevisionFound = from link in linkedRevisions where link.RevisionId == revision.Id select link; if (linkedRevisionFound.Count() > 0) { revision.LinkedRevisions = new ObservableCollection <LinkedRevision>(linkedRevisionFound.ToList()); } sheetData.Revisions.Add(revision); } } } } catch (Exception ex) { string message = ex.Message; } }