public static void Initialize(BaseJobConfiguration configuration) { if (configuration.ApplicationInsights != null) { TelemetryConfiguration telemetryConfiguration = TelemetryConfiguration.CreateDefault(); telemetryConfiguration.InstrumentationKey = configuration.ApplicationInsights.InstrumentationKey; var telemetryClient = new TelemetryClient(telemetryConfiguration); } }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{EnvironmentUtilities.GetEnvironmentName()}.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddCommandLine(args); var config = builder.Build(); BaseJobConfiguration configuration = config.Get <BaseJobConfiguration>(); CustomConfiguration customConfiguration = config.Get <CustomConfiguration>(); InitializationHelper.Initialize(configuration); var services = new ServiceCollection(); services.AddOptions(); services.Configure <CustomConfiguration>(config.GetSection(ConfigurationConstants.CustomConfigurationSectionName)); services.AddSingleton <IElasticSearchConnectionProvider, ElasticSearchConnector>(); var serviceProvider = services.BuildServiceProvider(); IElasticSearchConnectionProvider elasticSearchProvider = serviceProvider.GetRequiredService <IElasticSearchConnectionProvider>(); ElasticClient elasticClient = elasticSearchProvider.GetElasticClient(ElasticSearchIndexNameConstants.Productions); using (JMoviesEntities entities = new JMoviesEntities()) { foreach (var production in entities.Production) { long productionID = production.ID; if (production is JMovies.IMDb.Entities.Movies.Movie) { using (JMoviesEntities innerEntities = new JMoviesEntities()) { JMovies.IMDb.Entities.Movies.Movie movie = production as JMovies.IMDb.Entities.Movies.Movie; movie.AKAs = innerEntities.AKA.Where(e => e.ProductionID == productionID).ToArray(); movie.Genres = innerEntities.Genre.Where(e => e.ProductionID == productionID).ToArray(); movie.Keywords = innerEntities.Keyword.Where(e => e.ProductionID == productionID).ToArray(); movie.TagLines = innerEntities.TagLine.Where(e => e.ProductionID == productionID).ToArray(); } } elasticClient.IndexDocument(MapProduction(production as IMDb.Entities.Movies.Movie)); } } }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{EnvironmentUtilities.GetEnvironmentName()}.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddCommandLine(args); BaseJobConfiguration configuration = builder.Build().Get <BaseJobConfiguration>(); InitializationHelper.Initialize(configuration); var services = new ServiceCollection(); services.AddOptions(); var serviceProvider = services.BuildServiceProvider(); if (configuration.MaxRecordCount == default(int)) { configuration.MaxRecordCount = ConfigurationConstants.PersisterRecordCountPerRun; } using (JMoviesEntities entities = new JMoviesEntities()) { IIMDbDataProvider imdbDataProvider = new IMDbScraperDataProvider(); if (configuration.StartRecordID == default(long) || configuration.WorkingType == PersisterWorkingTypeEnum.UpdateInternalData) { configuration.StartRecordID = PersisterHelper.DetermineTheStartID(EntityType, DataSource, configuration.WorkingType, configuration.StartRecordID, entities); } long dataID = configuration.StartRecordID; for (int i = 0; i < configuration.MaxRecordCount; i++) { if (i != 0) { dataID = PersisterHelper.GetNextID(EntityType, DataSource, configuration.WorkingType, entities, dataID); } if (dataID != default(long)) { if (dataID > ConfigurationConstants.IMDBMaxID) { dataID = 1; } try { Production production = imdbDataProvider.GetProduction(dataID, ProductionDataFetchSettings); DbContextOptionsBuilder <JMoviesEntities> dbContextOptionsBuilder = new DbContextOptionsBuilder <JMoviesEntities>(); dbContextOptionsBuilder.UseLazyLoadingProxies(true); using (JMoviesEntities productionPersistanceEntities = new JMoviesEntities(dbContextOptionsBuilder.Options)) { ProductionPersistanceManager.Persist(productionPersistanceEntities, production); } PersisterHelper.SavePersisterHistory(entities, dataID, DataSource, EntityType, string.Empty); } catch (Exception exception) { PersisterHelper.SavePersisterHistory(entities, dataID, DataSource, EntityType, exception.ToString()); } entities.SaveChanges(); } } } }