#pragma warning restore CS0067 /// <summary> /// Create new audit repository service /// </summary> public AdoAuditRepositoryService(IConfigurationManager configurationManager, IDataCachingService dataCachingService, IBiMetadataRepository biMetadataRepository, IConceptRepositoryService conceptRepository, IAdhocCacheService adhocCacheService = null) { this.m_configuration = configurationManager.GetSection <AdoAuditConfigurationSection>(); this.m_adhocCache = adhocCacheService; this.m_dataCachingService = dataCachingService; this.m_conceptRepository = conceptRepository; try { this.m_configuration.Provider.UpgradeSchema("SanteDB.Persistence.Audit.ADO"); ApplicationServiceContext.Current.Started += (o, e) => { using (AuthenticationContext.EnterSystemContext()) { // Add audits as a BI data source biMetadataRepository .Insert(new BiDataSourceDefinition() { IsSystemObject = true, ConnectionString = this.m_configuration.ReadonlyConnectionString, MetaData = new BiMetadata() { Version = typeof(AdoAuditRepositoryService).Assembly.GetName().Version.ToString(), Status = BiDefinitionStatus.Active, Demands = new List <string>() { PermissionPolicyIdentifiers.AccessAuditLog } }, Id = "org.santedb.bi.dataSource.audit", Name = "audit", ProviderType = typeof(OrmBiDataProvider) }); } }; this.m_mapper = new ModelMapper(typeof(AdoAuditRepositoryService).Assembly.GetManifestResourceStream("SanteDB.Persistence.Auditing.ADO.Data.Map.ModelMap.xml")); this.m_builder = new QueryBuilder(this.m_mapper, this.m_configuration.Provider); } catch (ModelMapValidationException e) { this.m_traceSource.TraceError("Error validing map: {0}", e.Message); foreach (var i in e.ValidationDetails) { this.m_traceSource.TraceError("{0}:{1} @ {2}", i.Level, i.Message, i.Location); } throw; } }