public async Task RunProjections() { foreach (var item in ProjectionList.Items) { var query = await projectionContext.GetQueryAsync(item.Name); if (query == null) { await projectionContext.CreateContinuousAsync(item.Name, item.Query); } else if (query != item.Query) { await projectionContext.UpdateProjectionAsync(item.Name, item.Query); } } }
public async Task CreateProjectionTest() { var projectionManager = new ProjectionProvider(); var name = "Order c0c8b62c-607e-4298-824c-1a73f7361f75"; var projectionQuery = @"fromStream('Order c0c8b62c-607e-4298-824c-1a73f7361f75') .when({ $init:function(){ return { events: [] }; }, $any: function(state, event){ var metadata = JSON.parse(event.metadataRaw); var timeStamp = metadata.TimeStamp; if(Date.parse(timeStamp) >= Date.parse('2017-12-15 18:20:36')){ var data = { eventType : event.eventType, eventData : event, timeStamp : timeStamp }; state.events.push(data); } } });"; await projectionManager.CreateContinuousAsync(name, projectionQuery); await projectionManager.EnableAsync(name); var query = projectionManager.GetQueryAsync(name); Assert.IsNotNull(query); Assert.AreEqual(query, projectionQuery); }