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