async Task IHandle <UseBy> .Handle(UseBy message) { if (FurnaceWindow == null) { AttachedObject.SetLocalValue(FurnaceWindowProperty, GrainFactory.GetGrain <IFurnaceWindow>(Guid.NewGuid())); await FurnaceWindow.SetEntity(AttachedObject); } await message.Entity.Tell(new OpenWindow { Window = FurnaceWindow }); }
async Task IHandle <UseBy> .Handle(UseBy message) { var masterEntity = await FindMasterEntity(NeighborEntity); if (masterEntity.GetPrimaryKey() == AttachedObject.GetPrimaryKey()) { if (ChestWindow == null) { AttachedObject.SetLocalValue(ChestWindowProperty, GrainFactory.GetGrain <IChestWindow>(Guid.NewGuid())); await ChestWindow.SetEntities((NeighborEntity == null ? new[] { AttachedObject.AsReference <IDependencyObject>() } : new[] { AttachedObject.AsReference <IDependencyObject>(), NeighborEntity }).AsImmutable()); } await message.Entity.Tell(new OpenWindow { Window = ChestWindow }); } else { await masterEntity.Tell(message); } }