예제 #1
0
        private static void BsonMapping()
        {
            BsonClassMapping.RegisterClassMaps();

            BsonClassMap.RegisterClassMap <AppointmentId>(cm =>
            {
                //cm.AutoMap();
                cm.MapCreator(x => new AppointmentId(x.Value));
            });
            BsonClassMap.RegisterClassMap <AppointmentApi.AppointmentModel.ValueObjects.Location>(cm =>
            {
                //cm.AutoMap();
                cm.MapCreator(x => new AppointmentApi.AppointmentModel.ValueObjects.Location(x.Value));
            });
            BsonClassMap.RegisterClassMap <Schedule>(cm =>
            {
                //cm.AutoMap();
                cm.MapCreator(x => new Schedule(x.Value));
            });
            BsonClassMap.RegisterClassMap <CarService>(cm =>
            {
                cm.AutoMap();
                cm.MapCreator(cs => new CarService(cs.Name, cs.Price));
            });
            BsonClassMap.RegisterClassMap <AppointmentInsertReadModel>(cm => {
                cm.AutoMap();
            });

            // var conventionPack = new ConventionPack { new IgnoreExtraElementsConvention(true) };
            // ConventionRegistry.Register("IgnoreExtraElements", conventionPack, type => true);
        }
예제 #2
0
        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>());
        }
예제 #6
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.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);
        }
예제 #7
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);
        }
    }