Ejemplo n.º 1
0
        public void Load()
        {
            Logger = new ConsoleLogger();
            var currentDir = Directory.GetCurrentDirectory();

            Config = new XfQueryConfig();

            Logger.Ok("Loading XFQuery Core");

            var configDir       = Directory.CreateDirectory($"{currentDir}/Configs");
            var functionsConfig = Directory.CreateDirectory($"{configDir}/Functions");

            if (configDir.Exists && functionsConfig.Exists)
            {
                if (File.Exists($"{currentDir}/Configs/MainConfig.json"))
                {
                    var builder = new ConfigurationBuilder()
                                  .SetBasePath(Directory.GetCurrentDirectory())
                                  .AddJsonFile("Configs/MainConfig.json", false, true)
                                  .AddEnvironmentVariables();
                    var configuration = builder.Build();
                    configuration.Bind(Config);
                }
                else
                {
                    LoadDefaultConfig($"{currentDir}/Configs");
                }
            }
            else
            {
                if (configDir.Exists && functionsConfig.Exists)
                {
                    LoadDefaultConfig($"{currentDir}/Configs");
                    var builder = new ConfigurationBuilder()
                                  .SetBasePath(Directory.GetCurrentDirectory())
                                  .AddJsonFile(@"Configs/MainConfig.json", false, true)
                                  .AddEnvironmentVariables();
                    var configuration = builder.Build();
                    configuration.Bind(Config);
                }
                else
                {
                    throw new Exception("Cannot create an configs folder");
                }
            }

            Logger.Ok("Connecting to MongoDB");
            DatabaseManager = new DatabaseManager(Config);
            _addonManager   = new AddonManager();
            Logger.Ok("Loading extensions");
        }
Ejemplo n.º 2
0
        public DatabaseManager(XfQueryConfig config)
        {
            string GetConfig()
            {
                return(config.Database.ConnectionString == string.Empty
                    ? $"mongodb+srv://{config.Database.Login}:{config.Database.Password}@{config.Database.Host}:{config.Database.Port}/{config.Database.Database}?authSource=admin&readPreference=primary&appname=XFQuery"
                    : config.Database.ConnectionString);
            }

            var mongoClient = new MongoClient(GetConfig());

            mongoClient.StartSession();
            var mongoDatabase = mongoClient.GetDatabase($"{config.Database.Database}");

            MongoDatabase = mongoDatabase;
        }