public Task <IEnumerable <EventPublishingModel> > GetAsync() { if ((supportedMethod & Method.GetUnpublished) == Method.GetUnpublished) { return(publishingStore.GetAsync()); } return(Task.FromResult(Enumerable.Empty <EventPublishingModel>())); }
/// <summary> /// Re-publishes events from unpublished queue. /// Uses <paramref name="formatter"/> to deserialize events from store. /// </summary> /// <param name="formatter">The event deserializer.</param> /// <returns>The continuation task.</returns> public async Task RecoverAsync(IDeserializer formatter) { IEnumerable <EventPublishingModel> models = await store.GetAsync(); foreach (EventPublishingModel model in models) { IEvent eventModel = formatter.DeserializeEvent(Type.GetType(model.Event.EventKey.Type), model.Event.Payload); await RecoverEventAsync(eventModel, model.PublishedHandlerIdentifiers); } await store.ClearAsync(); }
/// <summary> /// Re-publishes events from unpublished queue. /// Uses <paramref name="formatter"/> to deserialize events from store. /// </summary> /// <param name="formatter">The event deserializer.</param> /// <returns>The continuation task.</returns> public async Task RecoverAsync(IDeserializer formatter) { Ensure.NotNull(formatter, "formatter"); log.Debug("Starting recovery."); IEnumerable <EventPublishingModel> models = await store.GetAsync(); foreach (EventPublishingModel model in models) { IEvent eventModel = formatter.DeserializeEvent(Type.GetType(model.Event.EventKey.Type), model.Event.Payload); log.Debug(eventModel, "Recovering an event."); await RecoverEventAsync(eventModel, model.PublishedHandlerIdentifiers); } await store.ClearAsync(); log.Debug("Recovery finished."); }