private void WriteRecord(EventSettings settings, string eventTypeName) { try { // (Konrad) All HOK specific settings are stored in a Settings.json file and referenced // inside of the HOK.Core. We can retrieve them by deserializing the resource. var settingsString = Resources.StreamEmbeddedResource("HOK.Core.Resources.Settings.json"); var path = Json.Deserialize <Core.Utilities.Settings>(settingsString)?.ModelReportingServiceEndpoint; var entities = new KNetBIMDataServiceReference.KNetBIMDataCollectionEntities(new Uri(path)); var dataPointEntity = new KNetBIMDataServiceReference.RevitEvent(); { dataPointEntity.ID = Guid.NewGuid(); dataPointEntity.EventType = eventTypeName; dataPointEntity.ProjectNumber = settings.ProjectNumber; dataPointEntity.ProjectName = settings.ProjectName; dataPointEntity.ProjectLatitude = settings.ProjectLatitude; dataPointEntity.ProjectLongitude = settings.ProjectLongitude; dataPointEntity.FileName = settings.DocCentralPath; dataPointEntity.LocalFileName = settings.DocLocalPath; dataPointEntity.FileLocation = settings.FileLocation; dataPointEntity.LocalFileLocation = settings.LocalFileLocation; dataPointEntity.PreEventFileSize = (int)settings.SizeStart; dataPointEntity.PostEventFileSize = (int)settings.SizeEnd; dataPointEntity.EventStart = settings.StartTime; dataPointEntity.EventFinish = settings.EndTime; dataPointEntity.UserName = Environment.UserName; dataPointEntity.UserLocation = settings.UserLocation; dataPointEntity.UserIPAddress = settings.IpAddress; dataPointEntity.ComputerName = Environment.MachineName; dataPointEntity.SoftwareVersion = settings.VersionNumber; } entities.AddToRevitEvents(dataPointEntity); entities.SaveChanges(); } catch (Exception e) { Log.AppendLog(LogMessageType.EXCEPTION, e.Message); } }
private void EventDocOpen(object sender, DocumentOpenedEventArgs e) { try { if (e.Document.IsFamilyDocument) { return; } _openSettings = new EventSettings(e.Document); _openSettings.SizeStart = _openSettings.GetFileSize(); _openSettings.StartTime = DateTime.Now; if (_openSettings.OpenDetached) { _openSettings.SizeEnd = _openSettings.SizeStart; _openSettings.EndTime = DateTime.Now; WriteRecord(_openSettings, "OPEN-DETACHED"); } else if (!string.IsNullOrEmpty(_openSettings.DocCentralPath)) { if (_openSettingsDictionary.ContainsKey(_openSettings.DocCentralPath)) { _openSettingsDictionary.Remove(_openSettings.DocCentralPath); } _openSettingsDictionary.Add(_openSettings.DocCentralPath, _openSettings); } if (!_openSettings.IsRecordable) { //warning message } } catch (Exception ex) { Log.AppendLog(LogMessageType.EXCEPTION, ex.Message); } }