Esempio n. 1
0
        async Task <GangUserData> IGangUserStore
        .TryGetByCredentialIdAsync(string credentialId)
        {
            var id = await _store.TryGetIndexedKeyAsync(credentialId);

            if (id == null)
            {
                return(null);
            }

            return(await _store.TryGetAsync(id));
        }
Esempio n. 2
0
        async Task <IGangStateEvent> GetEventAsync(string key)
        {
            var wrapper = await _eventStore.TryGetAsync(key);

            var type = _eventMap.GetType(wrapper.Type);

            return(GangStateEvent.From(
                       _serializer.Map(wrapper.Data, type),
                       wrapper.Audit
                       ));
        }
Esempio n. 3
0
        async Task <GangState <TStateData> > IGangStateStore
        .RestoreAsync <TStateData>(
            string gangId, TStateData initial
            )
            where TStateData : class
        {
            var data = await _cache.TryGetAsync(gangId);

            var state = _serializer.Map <GangState <TStateData> >(data);

            return(state ?? await RehydrateAsync(gangId, initial));
        }
Esempio n. 4
0
        public GangStateStore(
            IGangSerializationService serializer,
            GangStateEventMap eventMap,
            IGangStoreFactory storeFactory
            )
        {
            _events     = new Subject <IGangStateEvent>();
            _eventStore = storeFactory
                          .For <GangStateEventWrapper>()
                          .AddIndex(e => e.Audit.GangId)
                          .Create(STORE_EVENTS);
            _sequenceNumberStore = storeFactory
                                   .For <uint>()
                                   .Create(STORE_EVENTS);

            _cache = storeFactory
                     .For <object>()
                     .Create(STORE_CACHE);
            _serializer     = serializer;
            _eventMap       = eventMap;
            _sequenceNumber = _sequenceNumberStore
                              .TryGetAsync(KEY_SEQUENCE_NUMBER)
                              .GetAwaiter().GetResult();
        }
Esempio n. 5
0
 async Task <GangSessionUser> IGangSessionUserStore
 .TryGetByIdAsync(string id)
 {
     return(await _store.TryGetAsync(id));
 }