/// <summary> /// DI constructor /// </summary> public OrmBiDataProvider(IPolicyEnforcementService policyEnforcementService, IConfigurationManager configurationManager, IBiMetadataRepository biMetadataRepository = null, IBiPivotProvider biPivotProvider = null) { this.m_policyEnforcementService = policyEnforcementService; this.m_configurationManager = configurationManager; this.m_metadataRepository = biMetadataRepository; this.m_pivotProvider = biPivotProvider; }
#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; } }
/// <summary> /// DI constructor /// </summary> public BisServiceBehavior(IServiceManager serviceManager, IBiMetadataRepository metadataRepository) { this.m_serviceManager = serviceManager; this.m_metadataRepository = metadataRepository; }
/// <summary> /// DI constructor /// </summary> public LocalBiRenderService(IServiceManager serviceManager, IJobManagerService jobManager, IBiMetadataRepository metadataRepository, IBiDataSource defaultDataSource = null) { this.m_serviceManager = serviceManager; var job = serviceManager.CreateInjected <BiMaterializeJob>(); jobManager.AddJob(job, JobStartType.TimerOnly); // Set default job if (jobManager.GetJobSchedules(job)?.Any() != true) { jobManager.SetJobSchedule(job, new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday, DayOfWeek.Sunday }, new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0)); // First run for tomorrow } // Scan and initialize all BI materialized views ApplicationServiceContext.Current.Started += (o, e) => { foreach (var itm in metadataRepository.Query <BiQueryDefinition>(x => x.MetaData.Status == BiDefinitionStatus.Active, 0, 100)) { try { IBiDataSource dataSource = null; var queryDefinition = BiUtils.ResolveRefs(itm) as BiQueryDefinition; var providerType = queryDefinition.DataSources.FirstOrDefault()?.ProviderType; if (providerType != null) { dataSource = this.m_serviceManager.CreateInjected(providerType) as IBiDataSource; } else { dataSource = defaultDataSource; } this.m_tracer.TraceInfo("Materializing views for {0}", queryDefinition.Id); dataSource.CreateMaterializedView(queryDefinition); } catch (Exception ex) { this.m_tracer.TraceWarning("Could not initialize materialized views for {0} - {1}", itm.Id, ex.Message); } } }; }