// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //TODO get from appsettings
            var config = new ElasticConfig
            {
                Url             = "http://elk:9200",
                ElasticUser     = null,
                ElasticPassword = null
            };

            services
            .AddIokaVersionProvider(new VersionProvider())
            .AddIokaLogging(config, Foundation.Logging.LogLevel.Debug, () => "test")
            .AddMvc()
            .AddIokaFormatters()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services
            .AddIokaSecurity("https://localhost:44336", "https://localhost:44336/resources", GetEmbeddedCert(), "ioka", null)
            .AddIokaApiDocs(title: "Ioka.Services.Demo",
                            description: "This is the demo service reference app.");

            // Add dependencies to IoC container for each hosted component
            // which can be done like this DependencyManager.Configure(services, Configuration);
            // or as a fluent interface as in the line below.
            services.ConfigureDependencies(Configuration);

            // Configure any shared middleware such as a special request handler
            // services.AddSingleton<SpecialRequestHandler>();
        }
예제 #2
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        //--------------------------------------------------------------------------------------------------------------------------------------

        public ElasticSearchScenario(IStructuredLog logger, ElasticConfig elasticConfig)
        {
            _logger        = logger;
            _elasticConfig = elasticConfig;

            _cancellationTokenSource = new CancellationTokenSource();
            _cancellationToken       = _cancellationTokenSource.Token;

            _processElasticsearch = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName         = ElasticSearchExe,
                    UseShellExecute  = true,
                    WorkingDirectory = Path.GetDirectoryName(ElasticSearchExe),
                    Arguments        = ""
                }
            };


            _processKibana = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName         = KibanahExe,
                    UseShellExecute  = true,
                    WorkingDirectory = Path.GetDirectoryName(KibanahExe),
                    Arguments        = ""
                }
            };

            _countries = GetCountries();
        }
예제 #3
0
 public GitLabElasticService(IOptionsMonitor <GitLabConfig> gitLabConfig, IOptionsMonitor <ElasticConfig> elasticConfig, IGitLabService gitLabService, ILogger <GitLabElasticService> logger)
 {
     _gitLabConfig  = gitLabConfig.CurrentValue;
     _elasticConfig = elasticConfig.CurrentValue;
     _gitLabService = gitLabService;
     _logger        = logger;
 }
예제 #4
0
 public BaseController(IOptions <ElasticConfig> elasticConfig, ILoggerFactory loggerFactory, IElasticConnectionClient elasticConnectionClient,
                       SynkerDbContext context)
 {
     _logger = loggerFactory.CreateLogger(nameof(BaseController));
     _elasticConnectionClient = elasticConnectionClient;
     _elasticConfig           = elasticConfig.Value;
     _dbContext = context;
 }
예제 #5
0
 /// <summary>
 /// Сервис для получения статистики из GIT репозиториев
 /// </summary>
 public GitStatisticsService(
     ILogger <GitStatisticsService> logger,
     IOptionsMonitor <ElasticConfig> statisticsConfigMonitor,
     IOptionsMonitor <RepositoriesConfig> repositoriesConfig,
     IOptionsMonitor <WorkEstimateConfig> workEstimateConfig,
     IGitlabServiceClient gitlabServiceClient
     )
 {
     _logger              = logger;
     _statisticsConfig    = statisticsConfigMonitor.CurrentValue;
     _repositoriesConfig  = repositoriesConfig.CurrentValue;
     _workEstimateConfig  = workEstimateConfig.CurrentValue;
     _gitlabServiceClient = gitlabServiceClient;
 }
예제 #6
0
        private static IContainer InitDi()
        {
            //var uri = new Uri("http://localhost:9200");
            //var settings = new ConnectionSettings(uri).DefaultIndex("ark-personstorage");
            //var elasticLowLevelClient = new ElasticLowLevelClient(settings);
            //var client = new ElasticClient(settings);
            var elasticSearchConfig = new ElasticConfig(uri: "http://localhost:9200", index: "ark-personstorage");
            var structuredLogger    = new StructuredLog(_logger, elasticSearchConfig);

            var container = new ContainerBuilder();

            container.Register <IStructuredLog>(x => structuredLogger);
            container.RegisterType <ElasticSearchScenario>();
            container.Register(x => elasticSearchConfig);


            return(container.Build());
        }
예제 #7
0
 /// <summary>
 /// Self-hosted сервис ETL в еластик
 /// </summary>
 public ProducerHostingService(ILogger <ProducerHostingService> logger, GitElasticService gitElasticService, IOptionsMonitor <ElasticConfig> statisticsConfig)
 {
     _gitElasticService = gitElasticService;
     _statisticsConfig  = statisticsConfig.CurrentValue;
     _logger            = logger;
 }
예제 #8
0
 /// <summary>
 ///     This is the constructor of the user service
 /// </summary>
 /// <param name="repository"></param>
 /// <param name="projectRepository"></param>
 /// <param name="config"></param>
 public UserService(IUserRepository repository, IProjectRepository projectRepository, ElasticConfig config) : base(repository)
 {
     elasticConfig          = config;
     this.projectRepository = projectRepository;
 }
예제 #9
0
 public JiraElasticService(IOptionsMonitor <ElasticConfig> elasticConfig, JiraService jiraService, ILogger <JiraElasticService> logger)
 {
     _elasticConfig = elasticConfig.CurrentValue;
     _jiraService   = jiraService;
     _logger        = logger;
 }
예제 #10
0
 public ElasticConnectionClient(IOptions <ElasticConfig> config, ILoggerFactory loggerFactory)
 {
     _config = config.Value;
     _logger = loggerFactory.CreateLogger <ElasticConnectionClient>();
 }
 public ElasticSearchClientManager(IOptions <ElasticConfig> elasticConfig)
 {
     _elasticConfig = elasticConfig.Value;
     _client        = InitClient();
 }
예제 #12
0
 public GitElasticService(IOptionsMonitor <ElasticConfig> elasticConfig, IGitStatisticsService gitStatisticsService, ILogger <GitElasticService> logger)
 {
     _elasticConfig        = elasticConfig.CurrentValue;
     _gitStatisticsService = gitStatisticsService;
     _logger = logger;
 }
예제 #13
0
 /// <summary>
 /// Self-hosted сервис ETL в еластик
 /// </summary>
 public ProducerHostingService(ILogger <ProducerHostingService> logger, JiraElasticService jiraElasticService, IOptionsMonitor <ElasticConfig> elasticConfig)
 {
     _jiraElasticService = jiraElasticService;
     _elasticConfig      = elasticConfig.CurrentValue;
     _logger             = logger;
 }