private void SqlTableDependencyOnChanged(object sender, RecordChangedEventArgs <TEntity> eventArgs) { var entity = eventArgs.Entity; switch (eventArgs.ChangeType) { case ChangeType.Insert: OnInserted(entity); break; case ChangeType.Update: OnUpdated(entity, eventArgs.EntityOldValues); break; case ChangeType.Delete: OnDeleted(entity); break; } var recordChangedNotification = new RecordChangedNotification <TEntity>() { Entity = entity, EntityOldValues = eventArgs.EntityOldValues, ChangeType = eventArgs.ChangeType }; whenEntityRecordChangesSubject.OnNext(recordChangedNotification); }
internal void OnMessageReceived(RecordChangedNotification <TEntity> recordChange) { if (recordChange.ChangeType == ChangeType.None) { return; } var entityChange = new EntityChange <TEntity>(recordChange.Entity, Convert(recordChange.ChangeType)); reactiveData.Publish(entityChange); }
public void PushMessage(ChangeType changeType) { var notification = new RecordChangedNotification <TestModel> { Entity = new TestModel(), ChangeType = changeType }; var message = JsonConvert.SerializeObject(notification); OnMessageReceived(message); }
public void OnChanged_WhenEntityRecordChangesNotifies_Inserted() { //Arrange var sqlDependencyProvider = CreateClassUnderTest(); sqlDependencyProvider.SubscribeToEntityChanges(); RecordChangedNotification <TestModel> recordChangedNotification = null; var subscription = sqlDependencyProvider.WhenEntityRecordChanges.Subscribe(c => recordChangedNotification = c); var recordChangedEventArgsNotification = CreateRecordChangedEventArgsNotification(ChangeType.Insert); //Act tableDependencyMoq.Raise(m => m.OnChanged += null, tableDependencyMoq.Object, recordChangedEventArgsNotification); //Assert Assert.IsNotNull(recordChangedNotification); Assert.AreEqual(ChangeType.Insert, recordChangedNotification.ChangeType); subscription.Dispose(); }
public async Task SendDataChange(RecordChangedNotification <Product> recordChangedNotification) { await Clients.All.SendAsync("ReceiveDataChange", recordChangedNotification); }
protected void OnSqlTableDependencyRecordChanged(RecordChangedNotification <TEntity> recordChangedNotification) { string jsonNotification = Serialize(recordChangedNotification); redisPublisher.PublishAsync(ChangesChannelName, jsonNotification); }