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); }
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)); }
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); }
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); }
private static void SetInitialVersion(IContainSagaData saga) { var versionProperty = DocumentVersionAttribute.GetDocumentVersionProperty(saga.GetType()); versionProperty.SetValue(saga, 0); }