Example #1
0
        /// <summary>
        /// Put events list and its context into a EventData object
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="serializationManager"></param>
        /// <param name="streamId"></param>
        /// <param name="events"></param>
        /// <param name="requestContext"></param>
        /// <returns></returns>
        public static EventData ToEventData <T>(SerializationManager serializationManager, StreamId streamId, IEnumerable <T> events, Dictionary <string, object> requestContext)
        {
            var payload = new Body
            {
                Events         = events.Cast <object>().ToList(),
                RequestContext = requestContext
            };
            var bytes     = serializationManager.SerializeToByteArray(payload);
            var eventData = new EventData(bytes);

            eventData.SetStreamNamespaceProperty(streamId.GetNamespace());
            return(eventData);
        }
Example #2
0
        private async Task OnFailure(GuidId subscriptionId, string streamProviderName, StreamId streamId,
                                     StreamSequenceToken sequenceToken)
        {
            if (subscriptionId == null)
            {
                throw new ArgumentNullException("subscriptionId");
            }
            if (string.IsNullOrWhiteSpace(streamProviderName))
            {
                throw new ArgumentNullException("streamProviderName");
            }

            var failureEntity = createEntity();

            failureEntity.SubscriptionId     = subscriptionId.Guid;
            failureEntity.StreamProviderName = streamProviderName;
            failureEntity.StreamGuid         = streamId.GetKeyAsString();
            failureEntity.StreamNamespace    = streamId.GetNamespace();
            failureEntity.SetSequenceToken(this.serializationManager, sequenceToken);
            failureEntity.SetPartitionKey(this.clusterId);
            failureEntity.SetRowkey();
            await dataManager.CreateTableEntryAsync(failureEntity);
        }