public void SetRace(string code)
        {
            if (!_raceDictionary.ContainsKey(code))
            {
                return;
            }

            AutoUpdating = false;
            _race        = _raceDictionary[code];
            DBError error;

            if (_raceStore != null)
            {
                _raceStore.Close();
            }
            var manager = DBDatastoreManager.Manager(DBAccountManager.SharedManager.LinkedAccount);

            _raceStore = manager.OpenDatastore(_race.DataStoreID, out error);
            _raceStore.Sync(out error);

            UpdateBoatInformation();
            UpdateEventData(true);

            _raceStore.AddObserver(_raceStore, () => {
                UpdateEventData(false);                 // true will curtail the write each time
            });
            AutoUpdating = true;
        }
        public void Init()
        {
            if (_generalStore != null)
            {
                return;
            }
            DBError error;
            var     manager = DBDatastoreManager.Manager(DBAccountManager.SharedManager.LinkedAccount);

            if (string.IsNullOrEmpty(DatastoreId))
            {
                _generalStore = manager.CreateDatastore(out error);
                Debug.WriteLine("Datastore created, take a note of this:", _generalStore.DatastoreId);
                _generalStore.SetRole("public", DBRole.Editor);
            }
            else
            {
                _generalStore = manager.OpenDatastore(DatastoreId, out error);
            }

            _generalStore.Sync(out error);

            // DeleteAll();
            _generalStore.Sync(out error);

            _generalStore.AddObserver(_generalStore, () => {
                LoadData();
            });
            AutoUpdating = true;

            if (!_generalStore.Status.IsConnected)
            {
                LoadData();
            }
        }
        public void AddRaceCode(string code)
        {
            if (!_raceDictionary.ContainsKey(code))
            {
                AutoUpdating = false;
                var race = new DropboxRace {
                    Code = code
                };
                var     manager = DBDatastoreManager.Manager(DBAccountManager.SharedManager.LinkedAccount);
                DBError error;

                var racestore = manager.CreateDatastore(out error);
                racestore.SetRole("public", DBRole.Editor);
                racestore.SyncAsync();
                race.DataStoreID = racestore.DatastoreId;
                _raceStore       = racestore;
                _raceDictionary.Add(code, race);

                UpdateRaceInformation(race);
                SetRace(code);
                AutoUpdating = true;
            }
            LoadData();
        }