private void OnModelUpdated(object sender, ModelTrackerCollection <TModel> .ModelUpdatedEventArgs e) { if (SendMessages == false) { return; } UpdateModel m = new UpdateModel(); m.Id = e.UpdatedModel.Id; m.Model = e.UpdatedModel; ShardUpdateModel.Send(m); UserUpdateModel.Send(m); }
private void OnModelRemoved(object sender, ModelTrackerCollection <TModel> .ModelRemovedEventArgs e) { if (SendMessages == false) { return; } RemoveModel m = new RemoveModel(); m.Id = e.Model.Id; m.Model = e.Model; ShardRemoveModel.Send(m); UserRemoveModel.Send(m); }
protected override void InitializeDistributedService() { base.InitializeDistributedService(); SendMessages = true; ShardAddModel = CreateShardChannel <AddModel>(); ShardRemoveModel = CreateShardChannel <RemoveModel>(); ShardUpdateModel = CreateShardChannel <UpdateModel>(); ShardUpdateSet = CreateShardChannel <UpdateSet>(); ShardAddModel.Receive += addModel; ShardRemoveModel.Receive += removeModel; ShardUpdateModel.Receive += updateModel; ShardUpdateSet.Receive += updateSet; UserAddModel = CreateUserChannel <AddModel>(); UserRemoveModel = CreateUserChannel <RemoveModel>(); UserUpdateModel = CreateUserChannel <UpdateModel>(); UserUpdateSet = CreateUserChannel <UpdateSet>(); UserAddModel.Receive += addModel; UserRemoveModel.Receive += removeModel; UserUpdateModel.Receive += updateModel; UserUpdateSet.Receive += updateSet; Models = new ModelTrackerCollection <TModel>(); Models.ModelAddedEvent += OnModelAdded; Models.ModelRemovedEvent += OnModelRemoved; Models.ModelUpdatedEvent += OnModelUpdated; if (IsRouter) { RouterController.ShardController.NetUserConnected += OnShardConnected; RouterController.UserController.NetUserConnected += OnUserConnected; } }