public static void Main(string[] args) { var _client = new MongoClient("mongodb://*****:*****@"/app/ef.csv", FileMode.Open); TextReader r = new StreamReader(stream); var csv = new CsvReader(r); csv.Configuration.RegisterClassMap <EventImportRowClassMap>(); var csvRecords = csv.GetRecords <EventImportRow>().ToList(); foreach (var record in csvRecords) { record.ConferenceDayName = record.ConferenceDayName.Contains(" - ") ? record.ConferenceDayName.Split(new[] { " - " }, StringSplitOptions.None)[1].Trim() : record.ConferenceDayName.Trim(); } var conferenceTracks = csvRecords.Select(a => a.ConferenceTrack) .Distinct().OrderBy(a => a).ToList(); var conferenceRooms = csvRecords.Select(a => a.ConferenceRoom) .Distinct().OrderBy(a => a).ToList(); var conferenceDays = csvRecords.Select(a => new Tuple <DateTime, string>(DateTime.SpecifyKind(DateTime.Parse(a.ConferenceDay), DateTimeKind.Utc), a.ConferenceDayName)) .Distinct().OrderBy(a => a).ToList(); var eventConferenceTracks = UpdateEventConferenceTracks(conferenceTracks, eventConferenceTrackService); var eventConferenceRooms = UpdateEventConferenceRooms(conferenceRooms, eventConferenceRoomService); var eventConferenceDays = UpdateEventConferenceDays(conferenceDays, eventConferenceDayService); var eventEntries = UpdateEventEntries(csvRecords, eventConferenceTracks, eventConferenceRooms, eventConferenceDays, eventService); }
private static void Main(string[] args) { var _client = new MongoClient("mongodb://127.0.0.1:27017"); var _database = _client.GetDatabase("app_dev"); BsonClassMapping.Register(); var builder = new ContainerBuilder(); builder.RegisterModule(new AutofacModule(_database)); builder.RegisterModule(new Server.Services.DependencyResolution.AutofacModule()); var container = builder.Build(); var importer = new Importer(container.Resolve <IImageService>(), container.Resolve <IDealerService>()); importer.ImportZipPackageAsync(@"c:\temp\AppData_2016-08-02-amended-v2.zip").Wait(); }
private static void Main(string[] args) { var _client = new MongoClient("mongodb://127.0.0.1:27017"); var _database = _client.GetDatabase("app_dev"); BsonClassMapping.Register(); var builder = new ContainerBuilder(); builder.RegisterModule(new AutofacModule(_database)); builder.RegisterModule(new Server.Services.DependencyResolution.AutofacModule()); var container = builder.Build(); //var password = File.ReadAllText(@"c:\temp\efapppw.txt"); //var cookieContainer = new CookieContainer(); //using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer }) //using (var client = new HttpClient(handler)) //{ // var pairs = new List<KeyValuePair<string, string>> // { // new KeyValuePair<string, string>("u", "ef_app"), // new KeyValuePair<string, string>("p", password) // }; // var loginUri = @"https://wiki.eurofurence.org/?do=login"; // var requestUri = @"https://wiki.eurofurence.org/doku.php?id=ef22:it:mobileapp:coninfo&do=export_raw"; // var loginPayload = new FormUrlEncodedContent(pairs); // //var loginPayload = new StringContent($@"u=ef_app&p={password}"); // client.PostAsync(loginUri, loginPayload).Wait(); // var response = client.GetAsync(requestUri).Result; // var content = response.Content.ReadAsStringAsync().Result; //} var importedKnowledgeGroups = new List <KnowledgeGroupRecord>(); var importedKnowledgeEntries = new List <KnowledgeEntryRecord>(); var content = File.ReadAllText(@"c:\temp\wikicont.txt"); MatchCollection m; m = Regex.Matches(content, @"<WRAP.*?>PARSE_START</WRAP>(.*)?<WRAP.*?>PARSE_END</WRAP>", RegexOptions.Singleline); if (m.Count != 1) { throw new InvalidDataException(); } m = Regex.Matches(m[0].Groups[1].Value, @"====([^=]+)====(.+?)((?=====)|$)", RegexOptions.Singleline); if (m.Count == 0) { throw new InvalidDataException(); } var i = 0; foreach (Match matchGroup in m) { var titleParts = matchGroup.Groups[1].Value.Split('|').Select(a => a.Trim()).ToArray(); var knowledgeGroup = new KnowledgeGroupRecord { Id = titleParts[0].AsHashToGuid(), Name = titleParts[0], Description = titleParts[1], Order = i++ }; importedKnowledgeGroups.Add(knowledgeGroup); var entriesContent = matchGroup.Groups[2].Value; var entriesMatches = Regex.Matches(entriesContent, @"===([^=]+)===.+?<WRAP box[^>]*>(.+?)<\/WRAP>([^\<]*<WRAP lo[^>]*>([^\<]+)<\/WRAP>){0,1}", RegexOptions.Singleline); var j = 0; foreach (Match entryMatch in entriesMatches) { var knowledgeEntry = new KnowledgeEntryRecord { Id = entryMatch.Groups[1].Value.Trim().AsHashToGuid(), KnowledgeGroupId = knowledgeGroup.Id, Title = entryMatch.Groups[1].Value.Trim(), Text = entryMatch.Groups[2].Value.Trim(), Order = j++ }; importedKnowledgeEntries.Add(knowledgeEntry); } } UpdateKnowledgeGroups(importedKnowledgeGroups, container.Resolve <IKnowledgeGroupService>()); UpdateKnowledgeEntries(importedKnowledgeEntries, container.Resolve <IKnowledgeEntryService>()); }
public IServiceProvider ConfigureServices(IServiceCollection services) { var client = new MongoClient(new MongoUrl(Configuration["mongoDb:url"])); var database = client.GetDatabase(Configuration["mongoDb:database"]); BsonClassMapping.Register(); services.AddCors(options => { options.AddPolicy("CorsPolicy", cpb => cpb.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); }); services.AddMvc(options => options.MaxModelValidationErrors = 0) .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new BaseFirstContractResolver(); options.SerializerSettings.Formatting = Formatting.Indented; options.SerializerSettings.Converters.Add(new StringEnumConverter()); options.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK" }); }); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSwaggerGen(options => { options.SwaggerDoc("v2", new Info { Version = "v2", Title = "Eurofurence API for Mobile Apps", Description = "", TermsOfService = "None", Contact = new Contact { Name = "Luchs", Url = "https://telegram.me/pinselohrkater" } }); options.AddSecurityDefinition("Bearer", new ApiKeyScheme { Description = "JWT Authorization header using the Bearer scheme. Example: \"Bearer {token}\"", Name = "Authorization", In = "header", Type = "apiKey" }); options.DescribeAllEnumsAsStrings(); options.IncludeXmlComments($@"{_hostingEnvironment.ContentRootPath}/Eurofurence.App.Server.Web.xml"); options.IncludeXmlComments($@"{_hostingEnvironment.ContentRootPath}/Eurofurence.App.Domain.Model.xml"); options.SchemaFilter <IgnoreVirtualPropertiesSchemaFilter>(); options.OperationFilter <AddAuthorizationHeaderParameterOperationFilter>(); options.OperationFilter <BinaryPayloadFilter>(); }); var oAuthBearerAuthenticationPolicy = new AuthorizationPolicyBuilder().AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser() .Build(); services.AddAuthorization(auth => { auth.AddPolicy("OAuth-AllAuthenticated", oAuthBearerAuthenticationPolicy); }); var builder = new ContainerBuilder(); builder.Populate(services); builder.RegisterModule(new AutofacModule(database)); builder.RegisterModule(new Services.DependencyResolution.AutofacModule()); builder.RegisterInstance(new TokenFactorySettings { SecretKey = Configuration["oAuth:secretKey"], Audience = Configuration["oAuth:audience"], Issuer = Configuration["oAuth:issuer"] }); builder.RegisterInstance(new AuthenticationSettings { DefaultTokenLifeTime = TimeSpan.FromDays(30) }); builder.RegisterInstance(new ConventionSettings() { ConventionNumber = 23, }); builder.RegisterInstance(new WnsConfiguration { ClientId = Configuration["wns:clientId"], ClientSecret = Configuration["wns:clientSecret"], TargetTopic = Configuration["wns:targetTopic"] }); builder.RegisterInstance(new FirebaseConfiguration { AuthorizationKey = Configuration["firebase:authorizationKey"], TargetTopicAll = Configuration["firebase:targetTopic:all"], TargetTopicAndroid = Configuration["firebase:targetTopic:android"], TargetTopicIos = Configuration["firebase:targetTopic:ios"] }); builder.RegisterInstance(new TelegramConfiguration { AccessToken = Configuration["telegram:accessToken"], Proxy = Configuration["telegram:proxy"] }); builder.RegisterInstance(new CollectionGameConfiguration() { LogFile = Configuration["collectionGame:logFile"], LogLevel = Convert.ToInt32(Configuration["collectionGame:logLevel"]), TelegramManagementChatId = Configuration["collectionGame:telegramManagementChatId"] }); builder.Register(c => new ApiPrincipal(c.Resolve <IHttpContextAccessor>().HttpContext.User)) .As <IApiPrincipal>(); builder.Register(c => Configuration.GetSection("jobs:updateNews")) .Keyed <IConfiguration>("updateNews").As <IConfiguration>(); builder.RegisterType <UpdateNewsJob>().WithAttributeFiltering().AsSelf(); var container = builder.Build(); return(container.Resolve <IServiceProvider>()); }
private static int Main(string[] args) { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); var self = typeof(Program).GetTypeInfo().Assembly; var client = new MongoClient(new MongoUrl(Configuration["mongoDb:url"])); var database = client.GetDatabase(Configuration["mongoDb:database"]); BsonClassMapping.Register(); var builder = new ContainerBuilder(); builder.RegisterModule(new AutofacModule(database)); builder.RegisterModule(new Server.Services.DependencyResolution.AutofacModule()); builder.Register <ILoggerFactory>(_ => new LoggerFactory()); builder.RegisterInstance(new TokenFactorySettings { SecretKey = Configuration["oAuth:secretKey"], Audience = Configuration["oAuth:audience"], Issuer = Configuration["oAuth:issuer"] }); builder.RegisterInstance(new ConventionSettings { ConventionNumber = Convert.ToInt32(Configuration["global:conventionNumber"]), IsRegSysAuthenticationEnabled = Convert.ToInt32(Configuration["global:regSysAuthenticationEnabled"]) == 1 }); builder.RegisterInstance(new AuthenticationSettings { DefaultTokenLifeTime = TimeSpan.FromDays(30) }); var commands = self.GetTypes() .Where(a => typeof(ICommand).IsAssignableFrom(a) && !a.GetTypeInfo().IsAbstract); foreach (var type in commands) { builder.RegisterType(type).AsSelf(); } var container = builder.Build(); var app = new CommandLineApplication(); app.Name = "toolbox"; if (args.Length == 0) { args = new[] { "-h" } } ; foreach (var type in commands) { var command = (ICommand)container.Resolve(type); app.Command(command.Name, command.Register); } if (args.Length == 1 && args[0] == "--documentation") { PrintAllHelpOptionsRecursively(app); return(0); } AddHelpOptionRecursively(app); try { return(app.Execute(args)); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(0); }
private static int Main(string[] args) { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); var self = typeof(Program).GetTypeInfo().Assembly; var client = new MongoClient(new MongoUrl(Configuration["mongoDb:url"])); var database = client.GetDatabase(Configuration["mongoDb:database"]); BsonClassMapping.Register(); var builder = new ContainerBuilder(); builder.RegisterModule(new AutofacModule(database)); builder.RegisterModule(new Server.Services.DependencyResolution.AutofacModule()); builder.RegisterInstance(new TokenFactorySettings { SecretKey = Configuration["oAuth:secretKey"], Audience = Configuration["oAuth:audience"], Issuer = Configuration["oAuth:issuer"] }); var commands = self.GetTypes() .Where(a => typeof(ICommand).IsAssignableFrom(a) && !a.GetTypeInfo().IsAbstract); foreach (var type in commands) { builder.RegisterType(type).AsSelf(); } var container = builder.Build(); var app = new CommandLineApplication(); app.Name = "toolbox"; app.HelpOption("-?|-h|--help"); if (args.Length == 0) { args = new[] { "-h" } } ; foreach (var type in commands) { var command = (ICommand)container.Resolve(type); app.Command(command.Name, command.Register); } try { return(app.Execute(args)); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(0); } }