Example #1
0
        public async Task Save(IContainSagaData sagaData, SagaCorrelationProperty correlationProperty, SynchronizedStorageSession session, ContextBag context)
        {
            DocumentVersionAttribute.SetPropertyValue(sagaData, 0);
            await EnsureUniqueIndex(sagaData.GetType(), correlationProperty?.Name).ConfigureAwait(false);

            await _repo.Insert(sagaData).ConfigureAwait(false);
        }
Example #2
0
        public Task Update(IContainSagaData sagaData, SynchronizedStorageSession session, ContextBag context)
        {
            var versionProperty = DocumentVersionAttribute.GetProperty(sagaData);

            var classmap         = BsonClassMap.LookupClassMap(sagaData.GetType());
            var versionFieldName = GetFieldName(classmap, versionProperty.Key);

            return(_repo.Update(sagaData, versionFieldName, versionProperty.Value));
        }
Example #3
0
        public void Update(IContainSagaData saga)
        {
            var sagaDataType    = saga.GetType();
            var versionProperty = DocumentVersionAttribute.GetDocumentVersionProperty(sagaDataType);
            var version         = (int)versionProperty.GetValue(saga);

            var classmap         = BsonClassMap.LookupClassMap(sagaDataType);
            var versionFieldName = GetFieldName(classmap, versionProperty.Name);

            _repo.Update(saga, versionFieldName, version);
        }
Example #4
0
        public void Update(IContainSagaData saga)
        {
            var versionProperty = DocumentVersionAttribute.GetDocumentVersionProperty(saga.GetType());
            var version         = (int)versionProperty.GetValue(saga);

            var classmap         = BsonClassMap.LookupClassMap(saga.GetType());
            var membermap        = classmap.GetMemberMap(versionProperty.Name);
            var versionFieldName = membermap.ElementName;


            _repo.Update(saga, versionFieldName, version);
        }
Example #5
0
        private static void SetInitialVersion(IContainSagaData saga)
        {
            var versionProperty = DocumentVersionAttribute.GetDocumentVersionProperty(saga.GetType());

            versionProperty.SetValue(saga, 0);
        }