Exemple #1
0
        public ArangoXmlRepository(IServiceProvider services, ILoggerFactory loggerFactory,
                                   string database, string collection, IArangoContext context)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _logger     = loggerFactory.CreateLogger <ArangoXmlRepository>();
            _services   = services ?? throw new ArgumentNullException(nameof(services));
            _database   = database;
            _collection = collection;
            _context    = context ?? services.GetService <IArangoContext>() ?? services.GetRequiredService <ArangoContext>();

            try
            {
                if (!_context.Database.ExistAsync(_database).Result)
                {
                    _context.Database.CreateAsync(_database).Wait();
                }

                if (!_context.Collection.ExistAsync(_database, collection).Result)
                {
                    _context.Collection.CreateAsync(_database, _collection, ArangoCollectionType.Document).Wait();
                }
            }
            catch (Exception e)
            {
                var logger = _logger;
                logger?.LogError(e, e.Message);
            }
        }
Exemple #2
0
 public async Task SetupAsync(string serializer)
 {
     Arango = new ArangoContext(UniqueTestRealm(), new ArangoConfiguration
     {
         Serializer = serializer switch
         {
             "newton-default" => new ArangoNewtonsoftSerializer(new ArangoNewtonsoftDefaultContractResolver()),
             "newton-camel" => new ArangoNewtonsoftSerializer(new ArangoNewtonsoftCamelCaseContractResolver()),
             "system-default" => new ArangoJsonSerializer(new ArangoJsonDefaultPolicy()),
             "system-camel" => new ArangoJsonSerializer(new ArangoJsonCamelCasePolicy()),
             _ => new ArangoNewtonsoftSerializer(new ArangoNewtonsoftDefaultContractResolver())
         }
     });
        public ArangoSerilogSink(
            IArangoContext arango,
            string database       = "logs",
            string collection     = "logs",
            int batchPostingLimit = DefaultBatchPostingLimit,
            TimeSpan?period       = null)
            : base(batchPostingLimit, period ?? DefaultPeriod)
        {
            _arango     = arango;
            _database   = database;
            _collection = collection;

            try
            {
                if (!_arango.Database.ExistAsync(_database).Result)
                {
                    _arango.Database.CreateAsync(_database).Wait();
                }

                if (!_arango.Collection.ExistAsync(_database, collection).Result)
                {
                    _arango.Collection.CreateAsync(_database, new ArangoCollection
                    {
                        Name       = _collection,
                        KeyOptions = new ArangoKeyOptions
                        {
                            Type = ArangoKeyType.Padded
                        }
                    }).Wait();
                }
            }
            catch (Exception)
            {
                //
            }
        }
Exemple #4
0
 internal ArangoFoxxModule(IArangoContext context) : base(context)
 {
 }
Exemple #5
0
 public static IQueryable <T> AsQueryable <T>(this IArangoContext arango, ArangoHandle db, string collection = null)
 {
     return(new ArangoQueryableContext <T>(arango, db, collection ?? typeof(T).Name));
 }
 internal ArangoFunctionModule(IArangoContext context) : base(context)
 {
 }
Exemple #7
0
 internal ArangoViewModule(IArangoContext context) : base(context)
 {
 }
        /// <summary>
        ///  LINQ on database
        /// </summary>
        public static IQueryable <Aql> Query(this IArangoContext context, ArangoHandle handle)
        {
            var queryParser = new AqlParser(new ArangoLinq(context, handle));

            return(queryParser.CreateQueryable <Aql>());
        }
 internal ArangoUserModule(IArangoContext context) : base(context)
 {
 }
 internal ArangoGraphModule(IArangoContext context) : base(context)
 {
     Vertex = new ArangoGraphVertexModule(context);
     Edge   = new ArangoGraphEdgeModule(context);
 }
Exemple #11
0
 internal ArangoAnalyzerModule(IArangoContext context) : base(context)
 {
 }
Exemple #12
0
        /// <summary>
        /// Stores DataProtection keys in ArangoDB
        /// </summary>
        /// <param name="database">Name of the database suffix</param>
        /// <param name="collection">Name of the collection</param>
        /// <param name="context">Arango context (if not supplied it will be tried via dependency injection)</param>
        public static IDataProtectionBuilder PersistKeysToArangoDB(this IDataProtectionBuilder builder,
                                                                   string database = "dataprotection", string collection = "keys", IArangoContext context = null)
        {
            builder.Services.AddSingleton <IConfigureOptions <KeyManagementOptions> >(services =>
            {
                var loggerFactory = services.GetService <ILoggerFactory>() ?? NullLoggerFactory.Instance;
                return(new ConfigureOptions <KeyManagementOptions>(options =>
                {
                    options.XmlRepository = new ArangoXmlRepository(services, loggerFactory, database, collection, context);
                }));
            });

            return(builder);
        }
 internal ArangoPregelModule(IArangoContext context) : base(context)
 {
 }
Exemple #14
0
 public ArangoLinq(IArangoContext context, ArangoHandle handle)
 {
     _context = context;
     _handle  = handle;
 }
 internal ArangoBatchModule(IArangoContext context) : base(context)
 {
 }
 public ArangoProvider(IArangoContext arango, ArangoHandle handle, string collection)
 {
     _arango     = arango;
     _handle     = handle;
     _collection = collection;
 }
Exemple #17
0
 protected ArangoModule(IArangoContext context)
 {
     Context = context;
 }
Exemple #18
0
 internal ArangoIndexModule(IArangoContext context) : base(context)
 {
 }
Exemple #19
0
 public ArangoCollectionModule(IArangoContext context) : base(context)
 {
 }
        /// <summary>
        ///  LINQ in sub-expression
        /// </summary>
        public static IQueryable <T> Query <T>(this IArangoContext context)
        {
            var queryParser = new AqlParser(new ArangoLinq(context, null));

            return(queryParser.CreateQueryable <T>());
        }
Exemple #21
0
 internal ArangoTransactionModule(IArangoContext context) : base(context)
 {
 }
 internal ArangoDocumentModule(IArangoContext context) : base(context)
 {
 }
 internal ArangoGraphModule(IArangoContext context) : base(context)
 {
 }
Exemple #24
0
 public ArangoQueryableContext(IArangoContext arango, ArangoHandle handle, string collection)
 {
     Provider   = new ArangoProvider(arango, handle, collection);
     Expression = Expression.Constant(this);
 }
Exemple #25
0
 internal ArangoQueryModule(IArangoContext context) : base(context)
 {
 }
 internal ArangoDatabaseModule(IArangoContext context) : base(context)
 {
 }
 internal ArangoBackupModule(IArangoContext context) : base(context)
 {
 }
Exemple #28
0
 /// <summary>
 ///  Arango Migration System
 /// </summary>
 public ArangoMigrator(IArangoContext arango)
 {
     _arango = arango;
 }