/// <summary>
        /// Load database from PlayerPrefs to the dictionary
        /// </summary>
        private void LoadDatabase(string name)
        {
            if (loadedDatabases.ContainsKey(name))
            {
                throw new InvalidOperationException("Database already loaded.");
            }

            JsonObject json = JsonReader.Parse(
                PlayerPrefs.GetString(PlayerPrefsDatabaseKey + name, "{}")
                );

            var database = ArangoInMemory.FromJson(json);

            //database.OnChange += SaveDatabase; // TODO: onChange

            loadedDatabases[name] = database;
        }
Example #2
0
        public DatabaseItem(
            string databaseName,
            ArangoInMemory database,
            IdAllocator idAllocator
            )
        {
            DatabaseName     = databaseName;
            Database         = database;
            this.idAllocator = idAllocator;

            id          = idAllocator.NextId();
            displayName = databaseName;
            icon        = (Texture2D)EditorGUIUtility.IconContent(
                "Collab.BuildSucceeded"
                ).image;

            BuildChildren();
        }
        private void PerformContainerSurgery(Application serverApp)
        {
            // replace the database instance
            var arangoRepo = clientApp.Resolve <ArangoRepository>();

            arango = arangoRepo.GetDatabase(
                clientApp.Preferences.EmulatedDatabaseName
                );
            serverApp.Instance <IArango>(arango);
            clientApp.DontDisposeInstance(arango);

            // replace session instance
            var session = new SessionOverStorage(
                new EmulatedSessionStorage(arango),
                3600
                );

            serverApp.Instance <ISession>(session);
        }
Example #4
0
        public void SetUp()
        {
            arango  = new ArangoInMemory();
            log     = new InMemoryLog();
            manager = new EntityManager(arango, log);

            players = arango.CreateCollection(
                EntityUtils.CollectionPrefix + "PlayerEntity",
                CollectionType.Document
                );

            motorbikes = arango.CreateCollection(
                EntityUtils.CollectionPrefix + "MotorbikeEntity",
                CollectionType.Document
                );

            players.Add(@"{
                '_key': 'john',
                'Name': 'John Doe',
                'CreatedAt': '2020-02-16T14:18:00',
                'UpdatedAt': '2020-02-16T14:18:00'
            }");

            players.Add(@"{
                '_key': 'peter',
                'Name': 'Peter',
                'CreatedAt': '2020-02-16T14:18:00',
                'UpdatedAt': '2020-02-16T14:18:00'
            }");

            motorbikes.Add(@"{
                '_key': 'john',
                'Name': 'John-deer',
                'Model': 'latest',
                'CreatedAt': '2020-02-16T14:18:00',
                'UpdatedAt': '2020-02-16T14:18:00'
            }");
        }
Example #5
0
 public void SetUp()
 {
     arango   = new ArangoInMemory();
     executor = arango.Executor;
 }
Example #6
0
 public EmulatedSessionStorage(ArangoInMemory arango)
 {
     this.arango = arango;
 }